haskell-jp / questions #96 at 2021-03-13 14:18:15 +0900

理想としては、Architecture型の引数をもらって、それに応じてデータベースのやりとりとJSONの入出力を行ってくれる関数を定義したい感じです。

データベースから's型の変数を作り、入力のJSONを'i型に変換し、updateを施した後、返り値の's型のデータをデータベースに保存し、'o型の返り値をJSONに変換して出力。
そのやり方だとデータベース全体をロードする必要があるとおもいます。
一般的なデータベース(mysqlとか)とやりとりする場合はIOモナドを使います。
IO monadは s -> (a, s) 型の関数だと思えば良いので update相当のことができます
ありがとうございます。s->(a,s)型があればうまくいきそうですね。少し調べてみます。