ユーザーIDを返すモナド関数があります:
do
id <- getUserId
getUserId で、getUserId によって返される値のエイリアスを検索して返す関数を「スーパーインポーズ」できる必要があります。
明らかに、特定の関数 getAlias を作成し、モナド自体を書き直すことができます。
do
id <- getAlias getUserId
しかし、モナドのバインド関数に getAlias を隠すことで、これをより一般的に、再利用可能に、目に見えないようにできると思います。
モナドトランスフォーマーはこの機能を実行しますか、つまり、内部モナドのバインド関数を外部モナドのバインド関数で構成しますか? それとも、ここで他の制御構造が必要ですか?