結果は同じ種類だけど別の形の新しいモナドであることができる。この別のものを返せる能力がモナドの強みだ。連鎖を見てよう:この連鎖のそれぞれのステップにおいてコンテキストが変わることがきる。可変状態、トーケンストリーム、補助結果の値、エラーコードなど様々なものを持つことができる。演算に直接関わることでこれらが全て可能となる。この新しい責任は重荷ともなりえる。できなくなったからだ。呼び出してモナドを知っている新しい関数を得る必要がある。時にはこのリフティングをしたり「モナディックなコンテキスト」を意識しなきゃならないことがダルくなってくることもある。演算の連鎖を用いてコンテキストを運ぶ能力を与える。いう抽象体がコンテキストを保持するのが関数の間でやり取りされる値であることが用途に合わないことがある。コンテキストがデータじゃなくて演算を囲ってほしいこともある。コンテキストを与える。使い方に注意してほしい。(実行機能を公開しないこともある)。提供して制御された条件下でのみ実行することが考えられる。インプットとアウトプットだけだ。合成されると呼び出す関数など、さまざまな種類の情報が他にあるかもしれない。関数をコンテキストに包んで渡して欲しいときに使える。データベースを問い合わせる関数を別の関数に渡したいとする。クエリを呼び出して戻り値を渡せば、実際に戻り値が必要な時にクエリが実行される。その場合は呼び出し元がクエリを実行する必要がある。普通の関数だとクエリ関数とクエリを実行するデータベースへのハンドルの両方を渡す必要がある。リーダーモナドを使うが、その場合はクエリを実行するコードにモナドの存在を感染させる必要がある。データベースのハンドルをクエリとひとまとめにして、自身がどのデータベースと話すかを知っている強化されたクエリ関数が作れれば一番良い。用法は強化された合成だ。