Это последующий контроль за this question. Я пытаюсь совместить shell от @ ErikR's answer в моей петле InputT. main :: IO [String]
main = do
c <- makeCounter
execStateT (repl c) []
repl :
Учитывая, что у меня есть следующий DSL (с помощью Free монады) и его переводчик: data MyDslF next =
GetThingById Int (Thing -> next)
| Log Text next
type MyDslT = FT MyDslF
runMyDsl ::