나는 다음과 같은 두 가지 Kleisli 화살표를 한 경우 : 내가 좋아하는가 someting 쓸 수 있도록하고 싶습니다 Kleisli 화살표를 IO로 들어 올리시겠습니까?
stdoutProcessA :: Kleisli Maybe String (IO String)
writeToFileA :: Kleisli Maybe (FilePath, String) (IO())
: 물론 작동하지 않습니다
compile = proc src -> do
output <- stdoutProcessA -< "..."
writeToFileA -< ("...", output)
...
을 String
때문에 일치하지 않습니다 IO String
. 반면에 stdoutProcessA
과 writeToFileA
을 모두 Kleisli IO ...
유형으로 정의 할 수는 있지만 다른 것들에 필요한 Kleisli Maybe ...
유형의 화살표로 작성할 수는 없습니다.
저는 아직 화살표에 익숙하지 않아서 분명히 뭔가 빠져 있습니다. 위의 작업을 수행하려면 어떻게해야할까요?
그렇습니다. 실제로 'Kleisli IO String String'과 'Kleisli IO (FilePath, String)()'유형을 사용하는 것이 훨씬 더 합리적입니다. 그러나 나는 다른 유형과 결합 할 수 없습니다. 'Kleisli Maybe' 유형의 화살표 - 다른 모나드에서 Kleise 화살표를 결합하는 방법이 있습니까? –