module QuitF(quitIdF, quitF) where
import FudgetIO
import HaskellIO
import NullF
import DialogueIO hiding (IOError)
quitF :: F ans ho
quitF =
forall {f :: * -> * -> *} {ans} {ho}.
FudgetIO f =>
(ans -> f ans ho) -> f ans ho
getHigh forall a b. (a -> b) -> a -> b
$ \ ans
_ ->
forall a b. Request -> F a b -> F a b
hIOSuccF (Int -> Request
Exit Int
0) forall a b. (a -> b) -> a -> b
$
forall {hi} {ho}. F hi ho
nullF
quitIdF :: (ho -> Bool) -> F ho ho
quitIdF ho -> Bool
p =
forall {f :: * -> * -> *} {ans} {ho}.
FudgetIO f =>
(ans -> f ans ho) -> f ans ho
getHigh forall a b. (a -> b) -> a -> b
$ \ ho
msg ->
(if ho -> Bool
p ho
msg
then forall a b. Request -> F a b -> F a b
hIOSuccF (Int -> Request
Exit Int
0)
else forall {f :: * -> * -> *} {ho} {hi}.
FudgetIO f =>
ho -> f hi ho -> f hi ho
putHigh ho
msg) forall a b. (a -> b) -> a -> b
$
(ho -> Bool) -> F ho ho
quitIdF ho -> Bool
p