🎣 Add TryCatchOp and add our eval. catch implementation and runeval missing
This commit is contained in:
@ -76,6 +76,7 @@ data EvalOp a
|
||||
| StatePutOp State a
|
||||
| PrintOp String a
|
||||
| ErrorOp Error
|
||||
| TryCatchOp a a
|
||||
|
||||
instance Functor EvalOp where
|
||||
fmap f (ReadOp k) = ReadOp $ f . k
|
||||
@ -83,6 +84,7 @@ instance Functor EvalOp where
|
||||
fmap f (StatePutOp s m) = StatePutOp s $ f m
|
||||
fmap f (PrintOp p m) = PrintOp p $ f m
|
||||
fmap _ (ErrorOp e) = ErrorOp e
|
||||
fmap f (TryCatchOp m1 m2) = TryCatchOp (f m1) (f m2)
|
||||
|
||||
type EvalM a = Free EvalOp a
|
||||
|
||||
|
Reference in New Issue
Block a user