たとえば、同じモナドのコンテキストで複数の同時プロセスを実行する必要がありますConnection。私は次のようなものがうまくいくと思っていました:
main = runConnection connectionSettings $ do
forkIO action1
forkIO action2
action3
ただし、コンテキストforkIOで実行する必要がありIO、アクションも実行する必要がありIOます。
これらのアクションに type があると仮定すると、:: Connection ()それらを同時に実行するには何をする必要がありますか (どのインスタンスを実装するかなど)。
現在、私は次のようにこれを回避していますが、明らかにこれは正しくありません:
main = do
forkIO $ runConnection connectionSettings action1
forkIO $ runConnection connectionSettings action2
runConnection connectionSettings action3