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 [\]^   .Deepened the usual Control.Applicative module.(c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimentalportableSafe Alias to _.  (1+) |> 23"The auguments-flipped function of .  1 <| (+2)3 1 <|(+)|> 23 1 <|(+)|> 2 <|(*)|> 39 1 <|(,)|> 2(1,2) Alias to `. Alias to a. (1+) |$> [2][3]"The auguments-flipped function of . [1] <$| (+2)[3]("<"++)|$> ["a","b"] <$|(++">") ["<a>","<b>"] Alias to b.[(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]9filter (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{|}~      !"#$2b`cdefghijklmnopaqrstuvwxyz{| !"#$%&'()*+,-./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% Alias 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.(c) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe35 / Anologous to _, 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 transrolltransroll2 $ [Just 1]MaybeT [Just 1]transroll2 $ Just [1]ListT (Just [1])untransroll2 $ MaybeT [Just 1][Just 1]untransroll2 $ ListT (Just [1])Just [1]0transroll3 $ ExceptT (Identity (Right [Just 1]))4MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))Cuntransroll3 $ MaybeT (ListT (ExceptT (Identity (Right [Just 1]))))#ExceptT (Identity (Right [Just 1])) /Deepened the usual Control.Monad.Except module.?(C) 2013 Ross Paterson, (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 (~):@49/ 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-./>CLLift a binary operation to the new monad. lift2IdentityT :: (m a -> n b -> p c) -> IdentityT m a -> IdentityT n b -> IdentityT p c lift2IdentityT f a b = IdentityT (f (runIdentityT a) (runIdentityT b))2The 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:;<=>?@ABCDEFGHIJKLMN     b       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNY      !"&$#%'()*0123456789:;<=>?@ABCDEFGHIJKLMN+,-./i      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN     9   !"#$%&'()*0123456789:;<=>?@ABCDEFGHIJKLMN (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---SafeOPQRSTUVWXYZ!"#$%&'(,)*+,-./0123456789:;<=>?@ABCDEFGHOPQRSTUVWXYZ XYZUVWRSTOPQ OPQRSTUVWXYZ!"#$%&'(I !"#$%&'()*+,-./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 Y Z [ [ \ ] ] ^ _ _ `abcabdabeabfghighjgklghmghngopgoqgorgorgosgotgougovgowgoxgoygozgozgh{gh|gh}gh~ghghghghghghghghghghgghghghghgghghghgggggggggggggg g g gggggkghghghghghghghghghghghaaaagggaaaaaaaaaggggggggggggggggggggggggggggghghghghaaaaaaaaa                        ! " # $g%&g%'g%'a()a(*a(+a(,a(-a(- . / 0 1 2 3 4 5g67g68g69g6:g6;g6<g6=g6>g6?g6@g6Ag6Bg6Cg6Dg6Eg6Fg6Gg6Gg6Hg6Ig6Jg6Kg6Lg6Mg6Ng6Og6Pg6Qg6Qg6RgSTgSUVdeepc_E3lBamJuLmM9oTnpaDuXe6DeepControl.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 transroll2 untransroll2 transroll3 untransroll3 transroll4 untransroll4 transroll5 untransroll5 throwError2 catchError2 throwError3 catchError3 throwError4 catchError4 throwError5 catchError5listen2pass2listen3pass3listen4pass4listen5pass5SinkTsinkTsinkT2sinkT3sinkT4|>||<||*||>=>|>>=|>>=>|>>||<<||**||-*||>>>=|>>>=>|>>>||<<<||***||--*||-**||*-*||>>>>=|>>>>||<<<<||****||---*||--**||-*-*||*--*||-***||*-**||**-*||>>>>>||<<<<<||*****||----*||---**||--*-*||-*--*||*---*||--***||-*-**||*--**||*-*-*||-**-*||**--*||-****||*-***||**-**||***-*| IdentityT5 runIdentityT5 IdentityT4 runIdentityT4 IdentityT3 runIdentityT3 IdentityT2 runIdentityT2*: transrollI2 untransrollI2 mapIdentityT2 liftCallCC2 liftCatch2**:-*:*-: transrollI3 untransrollI3 mapIdentityT3 liftCallCC3 liftCatch3***:--*:-*-:*--:-**:*-*:**-: transrollI4 untransrollI4 mapIdentityT4 liftCallCC4 liftCatch4****:---*:--*-:-*--:*---:--**:-*-*:-**-:*-*-:**--:*--*:-***:*-**:**-*:***-: transrollI5 untransrollI5 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>>><<<