úΉXyƔ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“0Enable deep level Applicative style programming.KONISHI Yohuske 20154BSD-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]]yfoldr (\n acc -> n <<$|(+)|*>> acc) ((**:) 0) ([Right (Just 1), Right (Just 2), Right (Just 3)]) :: Either () (Maybe Int)Right (Just 6)xfoldr (\n acc -> n <<$|(+)|*>> acc) ((**:) 0) ([Right (Just 1), Right Nothing, Right (Just 3)]) :: Either () (Maybe Int) Right NothingXfoldr (\n acc -> n <<$|(+)|*>> acc) ((**:) 0) ([Right (Just 1), Right Nothing, Left ()])Left ()#The auguments-flipped function for .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]9  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEV—•˜™š›œžŸ Ą˘Ł¤Ľ–ڧ¨ŠŞŤŹ­ŽŻ°ą  !"#$%&'()*+,-./0123456789:;<=>?@ABCDE9  !"#&%$'()*+,-./0123546789;:<=>?@ABCDE9  !"#$%&'()*+,-./0123456789:;<=>?@ABCDE9  !"#$%&'()*+,-./0123456789:;<=>?@ABCDE$Enable deep level Monad programming.KONISHI Yohuske 20154BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---SafeJThe J5 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)]LThe L5 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)]MBind function of level-2.N Alias for ”. Just -< 3Just 3O#The auguments-flipped function for N. 3 >- JustJust 3P Alias for ˛. ((3+) <-< (2*) <-< (1+)) -< 17Q#The auguments-flipped function for P. 1 >- ((+1) >-> (*2) >-> (+3))7R#The auguments-flipped function for ł. SComposite function of level-2.TSequence function of level-2.U!Bind-cover function made of bind M and cover  , defined as m >-== k = (-*) m >>== k.V!Bind-cover function made of bind M and cover  , defined as m >-== k = (*-) m >>== k.W)Sequence-cover function made of sequence T and cover  , defined as m >-~ k = (-*) m >>~ k.X)Sequence-cover function made of sequence T and cover  , defined as m >-~ k = (*-) m >>~ k.1FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij´ľśˇ¸šşťź˝žżOŔÁłÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij%NOQPRLMTUVWXSJK^_`[\]ZbcdefaYHIhgFGji-FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij´ľśˇ¸šşťź˝žż!GIKMNOPQRSTUVWXYZ[\]^_`abcdefghij(Commutative Functor, Applicative, Monad.HKONISHI Yohuske 2015, Conor McBride and Ross Paterson 20054BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---SafelThis 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.mDo fmap f then commute, the same for  .n#The auguments-flipped function for m, the same for  .o)This function may be used as a value for  in a Ç instance, provided that l is defined. (Using o with a k- instance will result in infinite recursion.)p)This function may be used as a value for   in a é instance.ęëěklmnopíîďđńňóklmnopklmnop ęëěklmnopíîďđńňóSafe357 qrstuvôőö÷řů qrstuv qrstuv qrstuvôőö÷řůSafe357wxyzúűüýwxyzzwxywxyzúűüýSafe357 {|}~€ţ˙ {|}~€ ~{|}€ {|}~€ţ˙Safe357‚ƒ„…†‡  ‚ƒ„…†‡ …†‚ƒ„‡ ‚ƒ„…†‡ $Enable deep level Arrow programming.KONISHI Yohuske 2015,4BSD-style (see the LICENSE file in the distribution)ocean0yohsuke@gmail.com experimental---Safeˆ‰Š‹ŒŽ‘’“    , !"#$%&'()*+,-./01ˆ‰Š‹ŒŽ‘’“ ‘’“Ž‹Œˆ‰Š ˆ‰Š‹ŒŽ‘’“    2 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„„…†‡ˆ‰‰Š‹ŒŒŽ‘’’“”•–——˜™™š››œžŸ ĄŸ ˘ŸŁ¤Ÿ ĽŸ ڟ§¨Ÿ§ŠŸ§ŞŸ§ŞŸ§ŤŸ§ʟ§­Ÿ§ŽŸ§ݟ§°Ÿ§ąŸ§˛Ÿ§˛Ÿ łŸ ´Ÿ ľŸ śŸ ˇŸ ¸Ÿ šŸ şŸ ťŸ źŸ ˝Ÿ žŸ żŸ ŔÁÂĂÄĹĆÇČÉĘË̟ ÍŸ ÎŸ ĎŸ ĐŸŃҟ ÓŸ ԟ ՟Ń֟ŃןŃ؟ŃٟŃڟŃ۟ŃܟŃݟŃޟŃߟŃŕŸŃáŸŃâŸŃăŸ äŸ ĺŸ ćŸ çŸ čŸ éŸ ęŸŁëŸ ěŸ íŸ îŸ ďŸ đŸ ńŸ ňŸ óŸ ôŸ őŸ öŸ ÷řřůúűüýţ˙     Ÿ Ÿ!Ÿ"Ÿ#Ÿ$Ÿ%Ÿ&Ÿ'Ÿ(Ÿ)Ÿ*Ÿ+Ÿ,Ÿ-Ÿ.Ÿ/Ÿ0Ÿ0Ÿ1Ÿ2Ÿ3Ÿ4Ÿ5Ÿ6Ÿ7Ÿ8Ÿ9Ÿ:Ÿ:Ÿ;Ÿ<=Ÿ<>?deepc_JCUxpD3OHkwLdyS6clLzMVDeepControl.Monad.RWSDeepControl.ApplicativeDeepControl.MonadDeepControl.CommutativeDeepControl.Monad.ReaderDeepControl.Monad.StateDeepControl.Monad.WriterDeepControl.ArrowData.Traversable sequenceAtraversefor Data.FoldablefoldMapmtl_KMpng31YRYc5JfMWFZ3FCUControl.Monad.Reader.Classreaderlocalask MonadReaderControl.Monad.State.Classstateputget MonadStateControl.Monad.Writer.Classpasslistentellwriter MonadWriter|><|*:|$><$||*><*||**|**:-**-|$>><<$||*>><<*||****||-*|*--*|*-|***:-***-***---*-*-*--|$>>><<<$||*>>><<<*||******||-**|*-*|**-|--*|*--|-*--**|*-*|**-|--*|*--|-*-|****:|$>>>><<<<$||*>>>><<<<*|*****:|$>>>>><<<<<$||*>>>>><<<<<*|Monad5>>>>>==Monad4>>>>==Monad3>>>==Monad2>>==-<>-<-<>-><<>==>>>~>-==->==>-~->~>===>>>>~>--==->-==-->==>>-==->>==>->==>--~->-~-->~>>-~->>~>->~>====>>>>>~>=====>>>>>>~ Commutativecommute commuteMap commuteFor fmapDefaultfoldMapDefaultRWSrunRWSrwsevalRWSexecRWSReader runReaderasksStaterunStatemodifygets evalState execStateWriter runWriterlistenscensor execWriterKleisli5 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$fMonadStatesRWS$fMonadWriterwRWS$fMonadReaderrRWS $fMonadRWS$fApplicativeRWS $fFunctorRWS$fMonadReaderrReader $fMonadReader$fApplicativeReader$fFunctorReader$fMonadStatesState $fMonadState$fApplicativeState$fFunctorState$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>>><<<