úÎ8+3]      experimental6Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de> ;Interface for convertible datatypes. The provided function  9 is supposed to map the given function on every argument B of the given value and combine the results to give the converted  value. We provide instances of the  class for some predefined , Haskell types. For flat types the function  just returns A its argument which has no arguments to which the given function  could be applied. ?Interface of shareable nested monadic data types. The provided  function 0 is supposed to map the given function on every  monadic argument. We provide instances of the  class for some predefined , Haskell types. For flat types the function  just returns A its argument which has no arguments to which the given function  could be applied. 3Interface of monads that support explicit sharing. <Yields an action that returns the same results as the given C action but whose effects are only executed once. Especially, when B the resulting action is duplicated it returns the same result at  every occurrence. *Converts a convertible value recursively. AAn instance to convert lists with monadic elements into ordinary  lists. >An instance to convert ordinary lists into lists with monadic  elements. -An instance for lists with monadic elements.  experimental6Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de>=Continuation-based, store-passing implementation of explicit & sharing. It is an inlined version of ContT (ReaderT Store m) 8 where the result type of continuations is polymorphic. Runs a computation of type Lazy m a with given continuation and  store. ALifts all monadic effects to the top-level and unwraps the monad # transformer for explicit sharing.  !"#$ !" !" experimental6Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de>%&'() AMonad transformer that adds explicit sharing capability to every  monad. *+ ALifts all monadic effects to the top-level and unwraps the monad # transformer for explicit sharing. ,-./0123   experimental6Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de>0456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ   experimental0Sebastian Fischer (sebf\@informatik.uni-kiel.de) >Data type for lists where both the head and tail are monadic. The empty monadic list. %Constructs a non-empty monadic list. !Checks if monadic list is empty. -Yields the head of a monadic list. Relies on : instance ( to provide a failing implementation of 4. -Yields the tail of a monadic list. Relies on : instance ( to provide a failing implementation of 4. [#This instance enables the function Control.Monad.Sharing.convert @ to transform nested monadic lists into ordinary Haskell lists. \#This instance enables the function Control.Monad.Sharing.convert @ to transform ordinary Haskell lists into nested monadic lists. ]DThis instance allows to use nested monadic lists as argument to the  Control.Monad.Sharing.share combinator.      experimental6Sebastian Fischer <mailto:sebf@informatik.uni-kiel.de>0456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ ^      !"#$%&''()*+,-./01234534634734834934:3;<3;=3;>3;?3;@3;A3;B3;C3;D3;E3;F3;G3;H3;I3;J3;K3;L3;M3;N3;O3;P3;Q3;R3;S3;T3;U3;V3;W3;X3;Y3;Z3;[34\]^_`explicit-sharing-0.5.1Control.Monad.Sharing.ClassesControl.Monad.Sharing Control.Monad.Sharing.FirstOrderData.Monadic.List(Control.Monad.Sharing.Implementation.CPS/Control.Monad.Sharing.Implementation.FirstOrder ConvertibleconvArgs Shareable shareArgsSharingshareconvertLazyevalLazyListConsNilnilconsisEmptyfirstrest$fConvertiblem[][]$fConvertiblem[][]0$fShareablem[]UntypedStore nextLabelheapfromLazyrunLazy emptyStore freshLabel lookupValue storeValuememotypedLabeled WithFreshLiftedSevalSgnfhnfrun labelArgs.:setLabelbindbaseGHC.Basefail>>=>>returnMonadFunctor Control.Monad MonadPlusapliftM5liftM4liftM3liftM2liftMunlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzerofmap$fConvertiblemList[]$fConvertiblem[]List$fShareablemList