Return: t -> M t Fail: M t Bind: (t1 -> M t2) -> M t1 -> M t2