generated at
制約付きモナド
constrained monad