úÎ/ö,S7      !"#$%&'()*+,-./0123456 Safe-InferredA class for list types. % Every list has an underlying monad. :Transform an action returning a list to the returned list  > joinL $ Identity "hello"  "hello" Jcons. 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 7  > 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  7Transform 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]  3 LTransform the underlying monad of a list given a way to transform the monad  > import Data.List.Tree (bfs) M > bfs (transformListMonad (\(Identity x) -> [x, x]) "hey" :: ListT [] Char)  "hheeeeyyyyyyyy" *Consume all items and return the last one  > runIdentity $ lastL "hello"  'o' #9Merge many lists sorted by a criteria given the criteria V > mergeOn length [["hi", "hey", "hello"], ["cat", "falcon"], ["banana", "cucumber"]] 9 ["hi","cat","hey","hello","banana","falcon","cucumber"] $8Merge two lists sorted by a criteria given the criteria  > merge2On id "01568" "239"  "01235689" &Monadic version of iterate. A Can be used to produce trees given a children of node function. # import Data.List.Tree (bfsLayers) H take 3 $ bfsLayers (iterateM (\i -> [i*2, i*2+1]) [1] :: ListT [] Int)  [[1],[2,3],[4,5,6,7]] 'Monadic variant of splitAt. Q Consumes x items from the list and return them with the remaining monadic list. (Monadic variant of break. 7 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). FWhen 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 s into the list. 1 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 8 +Genereralized + For "List l => (a -> l b) -> l a -> l b use 9 (monadic bind) 4 :;  !"#$%&'()*+,-./<=0  !"#$%&'()*+,-./0  !"*+./,-  $#&'(%), :;  !"#$%&'()*+,-./<= Safe-Inferred 012>?@ABCDEF012012 012>?@ABCDEF Safe-Inferred3456345634563456 Safe-Inferred012012G      !"#$%&'()*+,-./01234556+&78978:78;<=>?@ABCDEFGHI List-0.5.1Data.List.ClassControl.Monad.Trans.ListControl.Monad.Trans.List.FuncsControl.Monad.ListTListItemMrunListjoinLconsListItemConsheadLtailLNilfoldrLfromListfilterfoldlLfoldl1Lscanlscanl1 genericTaketakeexecutejoinMmapL takeWhilerepeatMfilterL takeWhileMtoListlengthLtransformListMonadzipzipWithtaillastLrepeat transposemergeOnmerge2OnsortOniterateMsplitAtM splitWhenM listStateJoinconcat concatMap catMaybesmapMaybeenumFrom enumFromToListTrunListTbase Control.Monad MonadPlusjoin=<<deconstructListdeconstructList'$fFunctorListItem$fList[]foldrL'$fMonadIOListT $fListListT$fMonadTransListT$fMonadPlusListT$fApplicativeListT $fMonadListT$fFunctorListT $fMonoidListT