@a      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                     ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` Safe abcd   .Deepened the usual Control.Applicative module.MConor McBride and Ross Paterson 2005, (c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimentalportableSafe Alias to e.  (1+) |> 23"The auguments-flipped function of .  1 <| (+2)3 1 <|(+)|> 23 1 <|(+)|> 2 <|(*)|> 39 1 <|(,)|> 2(1,2) Alias to f. Alias to g. (1+) |$> [2][3]"The auguments-flipped function of . [1] <$| (+2)[3]("<"++)|$> ["a","b"] <$|(++">") ["<a>","<b>"] Alias to h.[(1+)] |*> [2][3][1] <$|(+)|*> [2][3][1] <$|(+)|*> [0,1,2][1,2,3]%[0,1] <$|(+)|*> [2,3] <$|(^)|*> [4,5][16,32,81,243,81,243,256,1024]Efoldr (\x acc -> x <$|(:)|*> acc) ((.*) []) [Just 1, Just 2, Just 3] Just [1,2,3]Efoldr (\x acc -> x <$|(:)|*> acc) ((.*) []) [Just 1, Nothing, Just 3]Nothing'filter (even <$|(&&)|*> (10>)) [1..100] [2,4,6,8]7filter (even <$|(&&)|*> (10>) <$|(&&)|*> (5<)) [1..100][6,8]"The auguments-flipped function of .  Definition:  f |* x = f |*> (.*) x  [(1+)] |* 2[3][1] <$|(+)|* 2[3](,) |$> ["a1","a2"] |* 'b'[("a1",'b'),("a2",'b')](,,) 'a' |$> ["b1","b2"] |* 'c'[('a',"b1",'c'),('a',"b2",'c')]'(,,,) 'a' |$> ["b1","b2"] |* 'c' |* 'd''[('a',"b1",'c','d'),('a',"b2",'c','d')]0(,,,) 'a' |$> ["b1","b2"] |* 'c' |*> ["d1","d2"]Q[('a',"b1",'c',"d1"),('a',"b1",'c',"d2"),('a',"b2",'c',"d1"),('a',"b2",'c',"d2")] Definition:  (*|) = (.*) x <*| f  1 *| [(+2)][3]1 *| [(+)] |* 2[3]1 *|[(+),(-),(*),(^)]|* 2 [3,-1,2,1]1 *|Just (,)|* 2 Just (1,2) Definition:  (.**) = (.*) . (.*) (.**) 1 :: Maybe [Int]Just [1] Definition:  (-*) = ((.*)|$>) (-*) (Just 1) :: Maybe [Int]Just [1] Definition:  (|$>>) = (|$>) . (|$>) (+1) |$>> [[2]][[3]]"The auguments-flipped function of [[2]] <<$| (+1)[[3]] Definition:  f |*>> x = f  $|(|*)|*> x [Just 1] <<$|(+)|*>> [Just 2][Just 3][Just 1] <<$|(,)|*>> [Just 2] [Just (1,2)])[[1]] <<$|(+)|*>> [[2]] <<$|(-)|*>> [[3]][[0]]wfoldr (\n acc -> n <<$|(+)|*>> acc) ((.**) 0) [Right (Just 1), Right (Just 2), Right (Just 3)] :: Either () (Maybe Int)Right (Just 6)vfoldr (\n acc -> n <<$|(+)|*>> acc) ((.**) 0) [Right (Just 1), Right Nothing, Right (Just 3)] :: Either () (Maybe Int) Right NothingVfoldr (\n acc -> n <<$|(+)|*>> acc) ((.**) 0) [Right (Just 1), Right Nothing, Left ()]Left () Definition:  (<<*|) = liftA2 (<*|)  Definition:  f |** x = f |*>> (.**) x [Just 1] <<$|(+)|** 2[Just 3]  Definition:  x **| f = (.**) x <<*| f 1 **|(+)|$>> [Just 2][Just 3]1 **|[Just (+)]|** 2[Just 3]11 **|[Just (+), Just (-), Just (*), Nothing]|** 2![Just 3,Just (-1),Just 2,Nothing]! Definition:  f |-* x = f |*>> (-*) x [Just 1] <<$|(+)|-* [2][Just 3]" Definition:  f |*- x = f |*>> (.*) x [Just 1] <<$|(+)|*- Just 2[Just 3]# Definition:  x -*| f = (-*) x <<*| f [1] -*|(+)|$>> [Just 2][Just 3]$ Definition:  x *-| f = (.*) x <<*| f Just 1 *-|(+)|$>> [Just 2][Just 3]Just 1 *-|[Just (+)]|** 2[Just 3]Just 1 *-|[Just (+)]|*- Just 2[Just 3][1] -*|[Just (+)]|*- Just 2[Just 3]8[1] -*|[Just (+), Just (-), Just (*), Nothing]|*- Just 2![Just 3,Just (-1),Just 2,Nothing]:[1,2] -*|[Just (+), Just (-), Just (*), Nothing]|*- Just 2>[Just 3,Just (-1),Just 2,Nothing,Just 4,Just 0,Just 4,Nothing](print 1 -*|return [\_ _ -> 3]|-* print 212[3]% Definition:  f *>> x = f  $|(*)|*> x %sequence $ Just (print 1) *>> (.**) 21Just 2"(-*) (print 1) *>> return (Just 2)1Just 2& Definition:  (<<*) = liftA2 (<*) %sequence $ (.**) 2 <<* Just (print 1)1Just 28sequence $ Just (print 1) *>> (.**) 3 <<* Just (print 2)12Just 3Lsequence $ [putStr "1", putStr "2"] *>> (.**) 0 <<* [putStr "3", putStr "4"]13142324[0,0,0,0]' Definition:  a -*> x = (-*) a *>> x print 1 -*> (.*) (Just 2)1Just 2( Definition:  x <-* a = x <<* (-*) a (.*) (Just 2) <-* print 11Just 2%print 1 -*> (.*) (Just 3) <-* print 212Just 3%print 1 -*> (.*) (Just 3) <*- Nothing1Nothing) Definition:  a *-> x = (.*) a *>> x $sequence $ print 1 *-> Just ((.*) 2)1Just 2* Definition:  x <*- a = x <<* (.*) a $sequence $ Just ((.*) 2) <*- print 11Just 20sequence $ print 1 *-> Just ((.*) 3) <*- print 212Just 30sequence $ print 1 *-> Just ((.*) 3) <-* NothingNothing !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$2hfijklmnopqrstuvgwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$ !"#$%&'()*+.-,/01235678:94>?@;<=ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$+Deepened the usual Data.Traversable module.LConor McBride and Ross Paterson 2005, (c) 2015 KONISHI Yohsuke4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe35% Synonym to  .sink $ Just [1][Just 1]sink $ Right (Just 1)Just (Right 1)sink [[1,2],[3,4]][[1,3],[1,4],[2,3],[2,4]]sink . sink $ [[1,2],[3,4]][[1,1,2,2],[1,1,2,4],[1,1,3,2],[1,1,3,4],[1,4,2,2],[1,4,2,4],[1,4,3,2],[1,4,3,4],[3,1,2,2],[3,1,2,4],[3,1,3,2],[3,1,3,4],[3,4,2,2],[3,4,2,4],[3,4,3,2],[3,4,3,4]]& Alias to  .' Definition:  sink2 = (sink|$>) . sink sink2 $ Just [[1]] [[Just 1]]sink2 $ Right (Just [1])Just [Right 1]( Definition:  float2 = sink . (sink|$>) float2 $ [[Just 1]] Just [[1]]float2 $ Just [Right 1]Right (Just [1])) Definition:  sink3 = (sink2|$>) . sink sink3 $ Just [[[1]]] [[[Just 1]]]sink3 $ Right [Just [1]][Just [Right 1]]* Definition:  float3 = sink . (float2|$>) float3 $ [[[Just 1]]] Just [[[1]]]float3 $ [Just [Right 1]]Right [Just [1]] %&'()*+,-. %&'()*+,-. %&'()*+,-. %&'()*+,-.'Deepend the usual Control.Monad module.K(c) The University of Glasgow 2001, (c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe35 / Anologous to e, but (-<) is left associative. Just -< 3Just 30"The auguments-flipped function of /. 3 >- JustJust 3:{let plus :: Int -> Int -> Int plus x y = M x >- \a -> -- (>-) is the level-0 bind function, analogous to (>>==) y >- \b -> a + b in plus 3 4:}71 Anologous to ", but the infix preference is low.((3+) <-< (2*) <-< (1+)) -< 172"The auguments-flipped function of 1. 1 >- ((+1) >-> (*2) >-> (+3))73(The level-2 bind function, analogous to .:{ -- List-List monadU [["a","b"]] >>== \x -> -- (>>==) is the level-2 bind function, analogous to (>>==) [[0],[1,2]] >>== \y ->  (.**) (x ++ show y):}E[["a0","b0"],["a0","b1","b2"],["a1","a2","b0"],["a1","a2","b1","b2"]]:{ ; let lengthM :: [Int] -> Maybe Int -- (->)-Maybe monad lengthM [] = Nothing# lengthM xs = Just (length xs) ; averageM :: [Int] -> Maybe Double -- (->)-Maybe monad averageM =  (-*) sum >>== \s -> lengthM >>== \l ->0 (.**) (fromIntegral s / fromIntegral l)( in [averageM [10, 25, 70], averageM []]:}[Just 35.0,Nothing]4(The level-2 fish function, analogous to .5,The level-2 sequence function, analogous to . Definition:  m >>~ f = m >>= \_ -> f 6,A level-2 cover-bind function, analogous to . Definition:  m >-= f = (-*) m >>= f 7,A level-2 cover-bind function, analogous to . Definition:  m ->= f = (.*) m >>= f 80A level-2 cover-sequence function, analogous to . Definition:  m >-~ f = (-*) m >>~ f 90A level-2 cover-sequence function, analogous to . Definition:  m ->~ f = (.*) m >>~ f :(The level-3 bind function, analogous to .:{  -- IO-List-List monadZ (.*) [["a","b"]] >>>= \x -> -- (>>>=) is the level-3 bind function, analogous to (>>==) (.*) [[0],[1,2]] >>>= \y ->\ (-**) (print (x,y)) >>>~ -- (>>>~) is the level-3 sequence function, analogous to (>>) (.***) (x ++ show y):}("a",0)("a",1)("a",2)("b",0)("b",1)("b",2)E[["a0","b0"],["a0","b1","b2"],["a1","a2","b0"],["a1","a2","b1","b2"]]`This messy code above can be neatly rewritten to the code below by grace of the cover functions.:{  -- IO-List-List monadY [["a","b"]] ->>= \x -> -- (->>=) is a level-3 cover-bind function, analogous to (>>==) [[0],[1,2]] ->>= \y ->[ print (x,y) >--~ -- (>--~) is a level-3 cover-sequence function, analogous to (>>) (.***) (x ++ show y):}("a",0)("a",1)("a",2)("b",0)("b",1)("b",2)E[["a0","b0"],["a0","b1","b2"],["a1","a2","b0"],["a1","a2","b1","b2"]]x/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~x/0213567894:<@AB=>?EDCHFG;IKLMNOPQRSTUVWXYZ[\]^_`abcdefgJhjklmnopqrstuvwxyz{|}~ix/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~x/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.Deepened the usual Control.Monad.Trans module.(c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001, (c) 2015 KONISHI Yohsuke BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safe3579Required only for transfoldtransfold2 $ [Just 1]MaybeT [Just 1]transfold2 $ Just [1]ListT (Just [1])untransfold2 $ MaybeT [Just 1][Just 1]untransfold2 $ ListT (Just [1])Just [1]0transfold3 $ ExceptT (Identity (Right [Just 1]))4MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))Cuntransfold3 $ MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))#ExceptT (Identity (Right [Just 1])) /Deepened the usual Control.Monad.Except module.(c) 2015 KONISHI Yohsuke  BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safe35INE/Deepened the usual Control.Monad.Writer module.(c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001, (c) 2015 KONISHI Yohsuke, BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safei.Deepened the usual Control.Monad.Morph module.>2013 Gabriel Gonzalez, (c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe357IN Alalog to %.'sinkT $ MaybeT (ListT (Right [Just 1]))!ListT (MaybeT (Right (Just [1])))<sinkT $ MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))6ListT (MaybeT (ExceptT (Identity (Right (Just [1]))))) Alalog to '.=sinkT2 $ MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))6ListT (ExceptT (MaybeT (Identity (Just (Right [1]))))) Alias to ./Equivalent to (|>|) with the arguments flipped. Alias to /The level-2 trans-bind function, analogous to ()?F:>4 7Deepened the usual Control.Monad.Trans.Identity module.@(c) 2007 Magnus Therning, (c) 2015 KONISHI Yohsuke BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---None-./>CL2The level-1 identity-cover function, analogous to '(.*)'%(*:) (Identity 1) :: IdentityT [] Int IdentityT [1]((*:) (Identity 1) :: IdentityT Maybe IntIdentityT (Just 1)2The level-2 identity-cover function, analogous to '(**:)'-(**:) (Identity 1) :: IdentityT2 [] Maybe Int%IdentityT2 {runIdentityT2 = [Just 1]}@(**:) (Identity 1) :: IdentityT2 (Except ()) (Writer String) IntSIdentityT2 {runIdentityT2 = ExceptT (Identity (Right (WriterT (Identity (1,"")))))}2The level-2 identity-cover function, analogous to '(-*)'0(-*:) (IdentityT [1]) :: IdentityT2 [] Maybe Int%IdentityT2 {runIdentityT2 = [Just 1]}^(-*:) (IdentityT (ExceptT (Identity (Right 1)))) :: IdentityT2 (Except ()) (Writer String) IntSIdentityT2 {runIdentityT2 = ExceptT (Identity (Right (WriterT (Identity (1,"")))))}2The level-2 identity-cover function, analogous to '(.*)'5(*-:) (IdentityT (Just 1)) :: IdentityT2 [] Maybe Int%IdentityT2 {runIdentityT2 = [Just 1]}[(*-:) (IdentityT (WriterT (Identity (1,"")))) :: IdentityT2 (Except ()) (Writer String) IntSIdentityT2 {runIdentityT2 = ExceptT (Identity (Right (WriterT (Identity (1,"")))))}q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST     b !"#$%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTY     "#$%&'(,*)+-./0 !6789:;<=>?@ABCDEFGHIJKLMNOPQRST12345i      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST     9"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRST (Deepened the usual Control.Arrow module.?(c) Ross Paterson 2002, (c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---SafeUVWXYZ[\]^_`&'()*+,-,./0123456789:;<=>?@ABCDEFGHIJKLMUVWXYZ[\]^_` ^_`[\]XYZUVW UVWXYZ[\]^_`&'()*+,-N !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ _ ` a a b c c d e e fghighjghkghlmnomnpmqrmnsmntmuvmuwmuxmuxmuymuzmu{mu|mu}mu~mumumumnmnmnmnmnmnmnmnmnmnmnmnmnmnmmnmnmnmnmmnmnmnmmmmmmmmmmmmmm m m mmmmmqmnmnmnmnmnmnmnmnmnmnmnggggmmmgggggggggmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnmnmnmnggggggggg                     ! " # $ % & ' ( )m*+m*,m*,g-.g-/g-0g-1g-2g-2 3 4 5 6 7 8 9 :m;<m;=m;>m;?m;@m;Am;Bm;Cm;Dm;Em;Fm;Gm;Hm;Im;Jm;Km;Lm;Lm;Mm;Nm;Om;Pm;Qm;Rm;Sm;Tm;Um;Vm;Vm;WmXYmXZ[deepc_DTnumdPWd246mXMtRCSmwKDeepControl.Monad.SignaturesDeepControl.ApplicativeDeepControl.TraversableDeepControl.MonadDeepControl.Monad.TransDeepControl.Monad.Trans.ExceptDeepControl.Monad.Trans.WriterDeepControl.Monad.Morph DeepControl.Monad.Trans.IdentityDeepControl.ArrowData.Traversable sequenceA traversablePass5Listen5Catch5CallCC5Pass4Listen4Catch4CallCC4Pass3Listen3Catch3CallCC3Pass2Listen2Catch2CallCC2|><|.*|$><$||*><*||**|.**-*|$>><<$||*>><<*||****||-*|*--*|*-|*>><<*-*><-**-><*-.***--*-***-*|$>>><<<$||*>>><<<*||******||-**|*-*|**-|--*|*--|-*---*|-*-|*--|-**|*-*|**-|*>>><<<**-->-*->--*>**->*-*>-**><*--<-*-<--*<**-<*-*<-**.****---*--**-*-**--*-****-****-*|$>>>><<<<$||*>>>><<<<*||****|-***|*-**|**-*|***-|--**|-*-*|*--*|*-*-|-**-|**--|---*|--*-|-*--|*---****|-***|*-**|**-*|***-|--**|-*-*|*--*|*-*-|-**-|**--|---*|--*-|-*--|*---|*>>>><<<<*<---*<--*-<-*--<*---<--**<-*-*<*--*<*-*-<-**-<**--<-***<*-**<**-*<***----*>--*->-*-->*--->--**>-*-*>*--*>*-*->-**->**-->-***>*-**>**-*>***->.*****----*---**--*-*-*--**---*--***-*-***--***-*-*-**-***--*-*****-*****-*****-*|$>>>>><<<<<$||*>>>>><<<<<*||-****|*-***|**-**|***-*|****-|--***|-*-**|*--**|*-*-*|-**-*|**--*|**-*-|*-**-|-***-|***--|---**|--*-*|-*--*|*---*|*--*-|-*-*-|--**-|-**--|*-*--|**---|----*|---*-|--*--|-*---|*-----****|*-***|**-**|***-*|****-|--***|-*-**|*--**|*-*-*|-**-*|**--*|**-*-|*-**-|-***-|***--|---**|--*-*|-*--*|*---*|*--*-|-*-*-|--**-|-**--|*-*--|**---|----*|---*-|--*--|-*---|*----|*>>>>><<<<<*<----*<---*-<--*--<-*---<*----<---**<--*-*<-*--*<*---*<*--*-<-*-*-<--**-<-**--<*-*--<**---<--***<-*-**<*--**<*-*-*<-**-*<**--*<**-*-<*-**-<-***-<***--<-****<*-***<**-**<***-*<****-----*>---*->--*-->-*--->*---->---**>--*-*>-*--*>*---*>*--*->-*-*->--**->-**-->*-*-->**--->--***>-*-**>*--**>*-*-*>-**-*>**--*>**-*->*-**->-***->***-->-****>*-***>**-**>***-*>****->sinksinkmapsink2float2sink3float3sink4float4sink5float5-<>-<-<>->>>==>>=>>>~>-=->=>-~->~>>>=>>>=>>>>~>--=->-=-->=>>-=->>=>->=-->~->-~>--~->>~>->~>>-~>>>>=>>>>=>>>>>~--->=-->-=->--=>---=-->>=->->=>-->=>->-=->>-=>>--=->>>=>->>=>>->=>>>-=--->~-->-~->--~>---~-->>~->->~>-->~>->-~->>-~>>--~->>>~>->>~>>->~>>>-~>>>>>=>>>>>=>>>>>>~---->=--->-=-->--=->---=>----=--->>=-->->=->-->=>--->=>-->-=->->-=-->>-=->>--=>->--=>>---=-->>>=->->>=>-->>=>->->=->>->=>>-->=>>->-=>->>-=->>>-=>>>--=->>>>=>->>>=>>->>=>>>->=>>>>-=---->~--->-~-->--~->---~>----~--->>~-->->~->-->~>--->~>-->-~->->-~-->>-~->>--~>->--~>>---~-->>>~->->>~>-->>~>->->~->>->~>>-->~>>->-~>->>-~->>>-~>>>--~->>>>~>->>>~>>->>~>>>->~>>>>-~ MonadTrans_transuntrans transfold2 untransfold2 transfold3 untransfold3 transfold4 untransfold4 transfold5 untransfold5 throwError2 catchError2 throwError3 catchError3 throwError4 catchError4 throwError5 catchError5listen2pass2listen3pass3listen4pass4listen5pass5SinkTsinkTsinkT2sinkT3sinkT4|>||<||*||>=>|>~|>>=|>>~|>>=>|>>||<<||**||-*||>>>=|>>>~|>>>=>|>>>||<<<||***||--*||-**||*-*||>>>>=|>>>>~|>>>>||<<<<||****||---*||--**||-*-*||*--*||-***||*-**||**-*||>>>>>=|>>>>>~|>>>>>||<<<<<||*****||----*||---**||--*-*||-*--*||*---*||--***||-*-**||*--**||*-*-*||-**-*||**--*||-****||*-***||**-**||***-*| IdentityT5 runIdentityT5 IdentityT4 runIdentityT4 IdentityT3 runIdentityT3 IdentityT2 runIdentityT2*: transfoldI2 untransfoldI2 mapIdentityT2 liftCallCC2 liftCatch2**:-*:*-: transfoldI3 untransfoldI3 mapIdentityT3 liftCallCC3 liftCatch3***:--*:-*-:*--:-**:*-*:**-: transfoldI4 untransfoldI4 mapIdentityT4 liftCallCC4 liftCatch4****:---*:--*-:-*--:*---:--**:-*-*:-**-:*-*-:**--:*--*:-***:*-**:**-*:***-: transfoldI5 untransfoldI5 mapIdentityT5 liftCallCC5 liftCatch5*****:----*:---*-:--*--:-*---:*----:---**:--*-*:-*--*:*---*:*--*-:-*-*-:--**-:-**--:*-*--:**---:--***:-*-**:*--**:*-*-*:-**-*:**--*:**-*-:*-**-:-***-:***--:-****:*-***:**-**:***-*:****-:Kleisli5 runKleisli5Kleisli4 runKleisli4Kleisli3 runKleisli3Kleisli2 runKleisli2trans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.SignaturesCallCCCatchListenPassbaseGHC.Base$pure Data.Functor<$><*> ApplicativeControl.ApplicativeoptionalgetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListliftA3liftA2liftA<**><$<**>manysome<|>empty Alternative.>>= Control.Monad>=>>>failfmapreturnguardjoinMonadFunctormfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<filterMforMsequencemapM Data.Foldablemsum sequence_forM_mapM_voidapliftM5liftM4liftM3liftM2liftMwhen=<<mplusmzero MonadPlus$fMonadTrans_WriterTWriterT$fMonadTrans_ExceptTExceptT$fMonadTrans_MaybeMaybeT$fMonadTrans_[]ListT$fMonadTrans_IdentityIdentityTControl.Monad.Trans.Class MonadTransliftControl.Monad.IO.ClassMonadIOliftIOControl.Monad.FixmfixMonadFix Data.Functionfixmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.Error.Class catchError throwError MonadErrorControl.Monad.Trans.ExceptExceptTExcept runExcept mapExcept withExcept runExceptT mapExceptT withExceptT Data.Monoid<>getDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastgetAltAltmconcatmappendmemptyMonoidControl.Monad.Writer.Classcensorlistenspasslistentellwriter MonadWriterControl.Monad.Trans.Writer.LazyWriterT runWriterTWriter runWriter execWriter mapWriter execWriterT mapWriterTmmorp_8dNpUU8QFPe77rrwKAb20bControl.Monad.Morphhoist$fSinkTWriterT$fSinkTExceptT $fSinkTListT $fSinkTMaybeT$fSinkTIdentityT|>==<|<|<>|>squash generalizeMFunctorembedMMonadlift2IdentityT2lift2IdentityT3lift2IdentityT4lift2IdentityT5$fMonadIOIdentityT5$fMonadPlusIdentityT5$fAlternativeIdentityT5$fMonadIdentityT5$fApplicativeIdentityT5$fMonadIOIdentityT4$fMonadPlusIdentityT4$fAlternativeIdentityT4$fMonadIdentityT4$fApplicativeIdentityT4$fMonadIOIdentityT3$fMonadPlusIdentityT3$fAlternativeIdentityT3$fMonadIdentityT3$fApplicativeIdentityT3$fMonadIOIdentityT2$fMonadPlusIdentityT2$fAlternativeIdentityT2$fMonadIdentityT2$fApplicativeIdentityT2Data.Functor.Identity runIdentityIdentityControl.Monad.Trans.Identity liftCatch liftCallCC mapIdentityT runIdentityT IdentityT$fArrowKleisli5$fCategory*Kleisli5$fArrowKleisli4$fCategory*Kleisli4$fArrowKleisli3$fCategory*Kleisli3$fArrowKleisli2$fCategory*Kleisli2 Control.Arrowarrfirstapp|||loopleftApp^<<<<^>>^^>>returnA&&&***secondArrow runKleisliKleisli zeroArrow ArrowZero<+> ArrowPlus+++rightleft ArrowChoice ArrowApply ArrowMonad ArrowLoopControl.Category>>><<<