Skip to content

Commit 5576348

Browse files
authored
add callCC for failCont (#24)
1 parent 5c7980d commit 5576348

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

MonadsAndEffects/3.2/failCont.hs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ instance Monad (FailCont r e) where
3434
FailCont v >>= k = FailCont $ \ok err -> v (\a -> runFailCont (k a) ok err) err
3535

3636

37+
-- callCFC :: ((a -> (b -> r) -> (e -> r) -> r) -> (a -> r) -> (e -> r) -> r) -> (a -> r) -> (e -> r) -> r
38+
-- callCFC f = \ok err -> f (\a _ _ -> ok a) ok err
39+
40+
callCFC :: ((a -> FailCont r e b) -> FailCont r e a) -> FailCont r e a
41+
callCFC f = FailCont $ \ok err -> runFailCont (f (\a -> FailCont $ \_ _ -> ok a)) ok err
42+
43+
3744
tryRead :: Read a => String -> Except ReadError a
3845
tryRead [] = throwE EmptyInput
3946
tryRead s = f $ reads s where

0 commit comments

Comments
 (0)