!l$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # 0Enable deep level Applicative style programming.(C) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe Alias for $.  (1+) |> 23#The auguments-flipped function for .  1 <| (+2)3 1 <|(+)|> 23 1 <|(+)|> 2 <|(*)|> 39 1 <|(,)|> 2(1,2) Alias for %. Alias for &. (1+) |$> [2][3]#The auguments-flipped function for . [1] <$| (+2)[3]("<"++)|$> ["a","b"] <$|(++">") ["<a>","<b>"] Alias for '.[(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 for . Combination consisted of ket  and cover  , defined as f |* x = f |*> (*:) x. [(1+)] |* 2[3][1] <$|(+)|* 2[3][1] <$|(+)|* 2 <$|(*)|* 3[9]Just 1 <$|(,)|* 2 Just (1,2)#The auguments-flipped function for .  1 *| [(+2)][3]1 *| [(+)] |* 2[3]1 *|[(+),(-),(*),(^)]|* 2 [3,-1,2,1]1 *|Just (,)|* 2 Just (1,2)Combination consisted of cover  twice, defined as (**:) = (*:) . (*:).Combination consisted of cover  and ket  , defined as (-*) = ((*:)|$>). Alias for . Combination consisted of cover  twice, defined as (|$>>) = (|$>) . (|$>).(+1) |$>> [[2]][[3]]#The auguments-flipped function for [[2]] <<$| (+1)[[3]] The lifted function of  , defined as (|*>>) = liftA2 (|*>).[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 ()!The lifted function of  , defined as (<<*|) = liftA2 (<*|)."Combination consisted of ket   and cover  , defined as f |** x = f |*>> (**:) x.[Just 1] <<$|(+)|** 2[Just 3]##The auguments-flipped function for ".1 **|(+)|$>> [Just 2][Just 3]1 **|[Just (+)]|** 2[Just 3]11 **|[Just (+), Just (-), Just (*), Nothing]|** 2![Just 3,Just (-1),Just 2,Nothing]$Combination consisted of ket   and cover  , defined as f |-* x = f |*>> (-*) x.[Just 1] <<$|(+)|-* [2][Just 3]%Combination consisted of ket   and cover  , defined as f |*- x = f |*>> (*-) x.[Just 1] <<$|(+)|*- Just 2[Just 3]&#The auguments-flipped function for $.[1] -*|(+)|$>> [Just 2][Just 3]'#The auguments-flipped function for %.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]:[0,1] -*|[Just (+), Just (-), Just (*), Nothing]|*- Just 2A[Just 2,Just 3,Just (-2),Just (-1),Just 0,Just 2,Nothing,Nothing](print 1 -*|return [\_ _ -> 3]|-* print 212[3](The lifted function of ( , defined as  liftA2 (*>).)The lifted function of ) , defined as  liftA2 (<*).*"Combination consisted of sequence ( and cover  , defined as:a *-> x = (*:) a *>> x+"Combination consisted of sequence ) and cover  , defined as:x <*- a = x <<* (*:) a,"Combination consisted of sequence ( and cover  , defined as:a -*> x = (-*) a *>> x-"Combination consisted of sequence ) and cover  , defined as:x <-* a = x <<* (-*) aQ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abn'%*+,-./01234567&89:;<)(=>?@A !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abQ !"#$%&'()*+,-.10/23456789:;<=>@?ABCDFEGHIJKLMNOPQRSTUVWXYZ[\]^_`abQ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abQ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab$Enable deep level Monad programming.(C) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---SafegThe g5 class defines the Monad functions for level-3 types  m1 (m2 (m3 a).:{ let  isJust (Just _) = True isJust _ = FalseK pythagorean_triple :: IO [Maybe (Int, Int, Int)] -- IO-List-Maybe Monad+ pythagorean_triple = filter isJust |$> ( [1..10] ->-== \x -> [1..10] ->-== \y -> [1..10] ->-== \z ->- guard (x < y && x*x + y*y == z*z) -->~ print (x,y,z) >--~ (***:) (x,y,z) ) in pythagorean_triple:}(3,4,5)(6,8,10)[Just (3,4,5),Just (6,8,10)]iThe i5 class defines the Monad functions for level-2 types  m1 (m2 a)G; such as [[a]], Maybe [a], Either () (Maybe a), a -> [b], IO [a], etc.:{ [["a","b"]] >>== \x ->  [[0],[1,2]] >>== \y ->  (**:) $ x ++ show y:}E[["a0","b0"],["a0","b1","b2"],["a1","a2","b0"],["a1","a2","b1","b2"]]:{  let  isJust (Just _) = True isJust _ = FalseE pythagorean_triple :: [Maybe (Int, Int, Int)] -- List-Maybe Monad' pythagorean_triple = filter isJust $ [1..10] >-== \x -> [1..10] >-== \y -> [1..10] >-== \z ->, guard (x < y && x*x + y*y == z*z) ->~ (**:) (x,y,z) in pythagorean_triple:}[Just (3,4,5),Just (6,8,10)]jBind function of level-2.k Alias for $. Just -< 3Just 3l#The auguments-flipped function for k. 3 >- JustJust 3m Alias for B. ((3+) <-< (2*) <-< (1+)) -< 17n#The auguments-flipped function for m. 1 >- ((+1) >-> (*2) >-> (+3))7o#The auguments-flipped function for C. pComposite function of level-2.qSequence function of level-2.r!Bind-cover function made of bind j and cover  , defined as m >-== k = (-*) m >>== k.s!Bind-cover function made of bind j and cover  , defined as m >-== k = (*-) m >>== k.t)Sequence-cover function made of sequence q and cover  , defined as m >-~ k = (-*) m >>~ k.u)Sequence-cover function made of sequence q and cover  , defined as m >-~ k = (*-) m >>~ k.1cdefghijklmnopqrstuvwxyz{|}~DEFGHIJKLMNOOPQCRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxcdefghijklmnopqrstuvwxyz{|}~%klnmoijqrstupgh{|}xyzw~vefcd-cdefghijklmnopqrstuvwxyz{|}~DEFGHIJKLMNO!dfhjklmnopqrstuvwxyz{|}~.Enable deep level Monad-Transform programming.(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---Safe Alias for  .  Commutative Functor.MConor McBride and Ross Paterson 2005, (C) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---SafeThis method is the same for  just except the name. The only difference is the name "commute", that is to say from which no action kind of concepts smell.Do fmap f then commute, the same for .#The auguments-flipped function for , the same for .)This function may be used as a value for R in a W instance, provided that  is defined. (Using  with a - instance will result in infinite recursion.))This function may be used as a value for  in a y instance.z{|}~ z{|}~MCopyright : (C) 2013 Ross Paterson, (C) 2015 KONISHI Yohsuke  BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---None-3579CCopyright : (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---Safe  UCopyright : (c) 2007 Yitzak Gale, Eric Kidd, (C) 2015 KONISHI Yohsuke BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safe Copyright : (C) 2015 KONISHI Yohsuke, (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology, 2001 BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safe357?. . 7 Copyright : (c) Andy Gill 2001, (c) Oregon Graduate Institute of Science and Technology 2001, (c) Jeff Newbern 2003-2007, (c) Andriy Palamarchuk 2007, (C) 2015 KONISHI Yohsuke, BSD-style (see the file LICENSE)ocean0yohsuke@gmail.com experimental---Safe357' Copyright : (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---Safe3575# # - Copyright : (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---Safe3571                 )      $Enable deep level Arrow programming.?(c) Ross Paterson 2002, (C) 2015 KONISHI Yohsuke 4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safe !"#,       !"# !"#   !"#! !"#$#%#&#'()(*(+(,(-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                         ! ! "#$%#$&#'(#$)#$*#$+#$,#-.#-/#-0#-0#-1#-2#-3#-4#-5#-6#-7#-8#-8#$9#$:#$;#$<#$=#$>#$?#$@#$A#$B#$C#$DEFGHIJKLMNOP#$Q#$R#$S#$T#UV#$W#$X#$Y#UZ#U[#U\#U]#U^#U_#U`#Ua#Ub#Uc#Ud#Ue#Uf#Ug#h#i#j#k#l#m#n#'o#$p#$q#$r#$s#$t#$u#$v#$w#$x#$y#$z#{||}~                                                                              ####### # # # # #################### #!"deepc_IRak6xVSJbI6R84DpJqR5sDeepControl.MonadTransDeepControl.Monad.ExceptDeepControl.Monad.RWSDeepControl.ApplicativeDeepControl.MonadDeepControl.CommutativeDeepControl.Monad.ListDeepControl.Monad.MaybeDeepControl.Monad.ReaderDeepControl.Monad.StateDeepControl.Monad.WriterDeepControl.ArrowControl.Monad.Trans.ClassliftData.Traversable sequenceAtraversefor Data.FoldablefoldMaptrans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.IO.ClassMonadIOliftIOmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.Error.Class catchError throwError MonadErrorControl.Monad.Reader.Classreaderlocalask MonadReaderControl.Monad.State.Classstateputget MonadStateControl.Monad.Writer.Classpasslistentellwriter MonadWriter|><|*:|$><$||*><*||**|**:-**-|$>><<$||*>><<*||****||-*|*--*|*-|*>><<**-><*--*><-****:-***-***---*-*-*--|$>>><<<$||*>>><<<*||******||-**|*-*|**-|--*|*--|-*--**|*-*|**-|--*|*--|-*-|*>>><<<**-->-*->--*>**->*-*>-**><*--<-*-<--*<**-<*-*<-******:|$>>>><<<<$||*>>>><<<<*|*>>>><<<<******:|$>>>>><<<<<$||*>>>>><<<<<*|*>>>>><<<<<*Monad5>>>>>==Monad4>>>>==Monad3>>>==Monad2>>==-<>-<-<>-><<>==>>>~>-==->==>-~->~>===>>>>~>--==->-==-->==>>-==->>==>->==>--~->-~-->~>>-~->>~>->~>====>>>>>~>=====>>>>>>~ MonadTrans5trans5 MonadTrans4trans4 MonadTrans3trans3 MonadTrans2trans2 MonadTranstrans Commutativecommutecmapcfor fmapDefaultfoldMapDefaultExceptT runExceptTExcept runExceptErrornoMsgstrMsg mapExcept withExcept mapExceptT withExceptTListTrunListTmapListT liftCallCC liftCatchMaybeT runMaybeT mapMaybeTRWST3runRWST3RWST2runRWST2RWSTrunRWSTRWSrunRWSrwsevalRWSexecRWSmapRWSwithRWSrwsTevalRWSTexecRWSTmapRWSTwithRWSTrwsT2 evalRWST2 execRWST2mapRWST2 withRWST2rwsT3 evalRWST3 execRWST3mapRWST3 withRWST3ReaderT3 runReaderT3ReaderT2 runReaderT2ReaderT runReaderTReader runReaderasks mapReaderT mapReaderT2 mapReaderT3StateT3 runStateT3StateT2 runStateT2StateT runStateTStaterunStatemodifygets evalState execStatemapState withState evalStateT execStateT mapStateT withStateT evalStateT2 execStateT2 mapStateT2 withStateT2 evalStateT3 execStateT3 mapStateT3 withStateT3WriterT3 runWriterT3WriterT2 runWriterT2WriterT runWriterTWriter runWriterlistenscensor execWriter mapWriter execWriterT mapWriterT execWriterT2 mapWriterT2 execWriterT3 mapWriterT3Kleisli5 runKleisli5Kleisli4 runKleisli4Kleisli3 runKleisli3Kleisli2 runKleisli2baseGHC.Base$pure Data.Functor<$><*>*><* ApplicativeControl.ApplicativeoptionalgetConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListliftA3liftA2liftA<**><$manysome<|>empty Alternative.>>$fMonad5Either $fMonad5[] $fMonad5Maybe$fMonad4Either $fMonad4[] $fMonad4Maybe$fMonad3Either $fMonad3[] $fMonad3Maybe$fMonad2Either $fMonad2[] $fMonad2Maybefail>>=fmapreturn Control.MonadguardjoinMonadFunctormfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMforMsequencemapMmsum sequence_forM_mapM_voidapliftM5liftM4liftM3liftM2liftMwhen=<<mplusmzero MonadPlusFoldableIdgetId$fApplicativeId $fFunctorId$fCommutativeConst$fCommutative(,)$fCommutativeEither$fCommutative[]$fCommutativeMaybe$fMonadIOExceptT$fMonadTransExceptT$fMonadErroreExceptT$fMonadExceptT$fApplicativeExceptT$fFunctorExceptT$fCommutativeExcept$fMonadIOListT$fMonadTransListT $fMonadListT$fApplicativeListT$fFunctorListT$fMonadIOMaybeT$fMonadTransMaybeT $fMonadMaybeT$fApplicativeMaybeT$fFunctorMaybeT$fMonadIORWST3$fMonadTrans3RWST3$fMonadStatesRWST3$fMonadWriterwRWST3$fMonadReaderrRWST3 $fMonadRWST3$fApplicativeRWST3$fFunctorRWST3$fMonadIORWST2$fMonadTrans2RWST2$fMonadStatesRWST2$fMonadWriterwRWST2$fMonadReaderrRWST2 $fMonadRWST2$fApplicativeRWST2$fFunctorRWST2 $fMonadIORWST$fMonadTransRWST$fMonadStatesRWST$fMonadWriterwRWST$fMonadReaderrRWST $fMonadRWST$fApplicativeRWST $fFunctorRWST$fMonadStatesRWS$fMonadWriterwRWS$fMonadReaderrRWS $fMonadRWS$fApplicativeRWS $fFunctorRWS$fMonadIOReaderT3$fMonadTrans3ReaderT3$fMonadReaderrReaderT3$fMonadReaderT3$fApplicativeReaderT3$fFunctorReaderT3$fMonadIOReaderT2$fMonadTrans2ReaderT2$fMonadReaderrReaderT2$fMonadReaderT2$fApplicativeReaderT2$fFunctorReaderT2$fMonadIOReaderT$fMonadTransReaderT$fMonadReaderrReaderT$fMonadReaderT$fApplicativeReaderT$fFunctorReaderT$fMonadReaderrReader $fMonadReader$fApplicativeReader$fFunctorReader$fMonadIOStateT3$fMonadTrans3StateT3$fMonadStatesStateT3$fMonadStateT3$fApplicativeStateT3$fFunctorStateT3$fMonadIOStateT2$fMonadTrans2StateT2$fMonadStatesStateT2$fMonadStateT2$fApplicativeStateT2$fFunctorStateT2$fMonadIOStateT$fMonadTransStateT$fMonadStatesStateT $fMonadStateT$fApplicativeStateT$fFunctorStateT$fMonadStatesState $fMonadState$fApplicativeState$fFunctorState$fMonadIOWriterT3$fMonadTrans3WriterT3$fMonadWriterwWriterT3$fMonadWriterT3$fApplicativeWriterT3$fFunctorWriterT3$fMonadIOWriterT2$fMonadTrans2WriterT2$fMonadWriterwWriterT2$fMonadWriterT2$fApplicativeWriterT2$fFunctorWriterT2$fMonadIOWriterT$fMonadTransWriterT$fMonadWriterwWriterT$fMonadWriterT$fApplicativeWriterT$fFunctorWriterT$fMonadWriterwWriter$fMonad5Writer$fMonad4Writer$fMonad3Writer$fMonad2Writer $fMonadWriter$fApplicativeWriter$fFunctorWriter$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>>><<<