REST 呼び出しは、spray.io を使用します。データ ストアを照会する途中の関数を含むさまざまな関数を使用して、その呼び出しの要求を検証します。すべて問題がなければ、そのデータ ストアに書き込みます。この状況では、最大 4 つの IO アクション (HTTP 要求、データ読み取り、データ書き込み、および HTTP 応答) があります。IO モナドを使用することにした場合、非 IO 関数が散在する必要がある場合と必要でない場合がある場合 (つまり、一部の検証が失敗した場合に読み取りと書き込みを行う必要がない場合があります)、IO を実行するように構造化するにはどうすればよいでしょうか? おそらく、まず第一に、最初にスプレーのものを無視し、スプレーがそれを行った後に評価を開始すると考えることができます. しかし、IO 関数を非 IO 関数で構成するにはどうすればよいでしょうか? 非 io のものを io モナドに持ち上げる必要がありますか?