úÎ! ÌÞ0      !"#$%&'()*+,-./(c) Sjoerd Visscher 2009 BSD-style (see the file LICENSE)sjoerd@w3future.com experimentalportableSafeSXÂfmlist is a 0" function wrapped up in a newtype.fmlist The function C transforms a list by changing the map function that is passed to 0.It has the following property: -transform a . transform b = transform (b . a) For example:  m >>= g = flatten (fmap g m) = flatten . fmap g $ m )= transform foldMap . transform (. g) $ m = transform ((. g) . foldMap) m #= transform (\f -> foldMap f . g) mfmlistw buids an infinite list of a single value. While infinite, the result is still accessible from both the start and end.fmlistW repeats a list to create an infinite list. It is also accessible from the end, where last (cycle l) equals last l. fmlist  builds an S from a seed value from left to right. The function takes the element and returns 1. if it is done producing the list or returns 2 (a,b), in which case, a! is a appended to the result and b5 is used as the next seed value in a recursive call.A simple use of  : _*> unfoldr (\b -> if b == 0 then Nothing else Just (b, b-1)) 10 fromList [10,9,8,7,6,5,4,3,2,1]!fmlist!N builds a list from a seed value. The function takes the seed and returns an  of values. If the value is 3 a, then a1 is appended to the result, and if the value is 4 b, then b+ is used as seed value in a recursive call.A simple use of ! (simulating unfoldl): h*> unfold (\b -> if b == 0 then empty else Left (b-1) `pair` Right b) 10 fromList [1,2,3,4,5,6,7,8,9,10]"fmlistxMap each element of a structure to an action, evaluate these actions from left to right, and concat the monoid results.#  !"# "! 5      !"#$%&'()*+,-./01234567689:9;<#fmlist-0.9.4-59I3JXx4yL0KhDgwzovJPM Data.FMListbase Data.FoldabletoListGHC.BaseemptyFMListFMunFM transform singletonconssnocpairappendfromList fromFoldablenulllength genericLengthheadtaillastinitreverseflattenfiltertake takeWhiledrop dropWhilezipWithzipiteraterepeatcycleunfoldrunfoldfoldMapA $fShowFMList$fAlternativeFMList$fMonadPlusFMList$fMonoidFMList$fSemigroupFMList$fApplicativeFMList$fMonadFailFMList $fMonadFMList$fTraversableFMList$fFoldableFMList$fFunctorFMList$fMonoidWrapApp$fSemigroupWrapAppfoldMap GHC.MaybeNothingJust Data.EitherRightLeft