úÎ/ö+ÞJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHISafe:DR<A class for list types. Every list has an underlying monad.9Transform an action returning a list to the returned list "> joinL $ Identity "hello" "hello"Icons. Can be derived from MonadPlus but is part of class for performance.  foldr for ;s. the result and 'right side' values are monadic actions. Convert a list to a J E> fromList [] :: Maybe Int Nothing > fromList [5] :: Maybe Int Just 5 filter for any MonadPlus > filter (> 5) (Just 3) Nothing An action to do foldl for s!Execute the monadic actions in a 6Transform a list of actions to a list of their results &> joinM [Identity 4, Identity 7] [4,7]An action to transform a  to a list (> runIdentity $ toList "hello!" "hello!":Consume a list (execute its actions) and return its length !> runIdentity $ lengthL [1,2,3] 3KTransform the underlying monad of a list given a way to transform the monad z> import Data.List.Tree (bfs) > bfs (transformListMonad (\(Identity x) -> [x, x]) "hey" :: ListT [] Char) "hheeeeyyyyyyyy" )Consume all items and return the last one !> runIdentity $ lastL "hello" 'o'#8Merge many lists sorted by a criteria given the criteria Œ> mergeOn length [["hi", "hey", "hello"], ["cat", "falcon"], ["banana", "cucumber"]] ["hi","cat","hey","hello","banana","falcon","cucumber"]$7Merge two lists sorted by a criteria given the criteria &> merge2On id "01568" "239" "01235689"&\Monadic version of iterate. Can be used to produce trees given a children of node function. ~import Data.List.Tree (bfsLayers) take 3 $ bfsLayers (iterateM (\i -> [i*2, i*2+1]) [1] :: ListT [] Int) [[1],[2,3],[4,5,6,7]]'lMonadic variant of splitAt. Consumes x items from the list and return them with the remaining monadic list.(PMonadic variant of break. Consumes items from the list until a condition holds.)listStateJoin can transform a ListT (StateT s m) a to a StateT s m (ListT m a).‰When iterating a list, a state is already maintained and passed along in the form of the location along the list. This joins the inner StateT sV into the list. The list will fork the state given to it and won't share its changes.* Generalized *For List l => l (l a) -> l a use K+Genereralized +For "List l => (a -> l b) -> l a -> l b use L (monadic bind)4 MN  !"#$%&'()*+,-./010  !"#$%&'()*+,-./0 !"*+./,-  $#&'(%), MN  !"#$%&'()*+,-./015Safe /9;<=DR 678O9:;<=>?@A678678 678O9:;<=>?@ASafeFGHIFGHIFGHIFGHIP      !"#$%&'()*+,-./0123456789::;<=>?@ABCDEFGH*%IJKIJLIJMNOPQ!List-0.6.0-H9r3KpxTVrcLcKxbjSdys9Data.List.ClassControl.Monad.ListTControl.Monad.ListT.FuncsListItemMrunListjoinLconsListItemNilConsheadLtailLfoldrLfromListfilterfoldlLfoldl1Lscanlscanl1 genericTaketakeexecutejoinMmapL takeWhilerepeatMfilterL takeWhileMtoListlengthLtransformListMonadzipzipWithtaillastLrepeat transposemergeOnmerge2OnsortOniterateMsplitAtM splitWhenM listStateJoinconcat concatMap catMaybesmapMaybeenumFrom enumFromTo$fFunctorListItem$fList[] $fEqListItem $fOrdListItem$fReadListItem$fShowListItemListTrunListT$fMonadIOListT $fListListT$fMonadTransListT$fMonadPlusListT$fAlternativeListT$fApplicativeListT $fMonadListT$fFunctorListT $fMonoidListT $fShowListT $fReadListT $fOrdListT $fEqListTbaseGHC.Base MonadPlusjoin=<<deconstructListdeconstructList'foldrL'