6-Wz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyNone24;HM zNonlinear resources. FWith the Fix constructor, I can build data structures of linear data. HPointers can be freeable or foreign. Freeable pointers are created with 9{. Linearity is enforced for them, so I can do strong update, but the need to keep track of all pointers means that B cannot be supported. Foreign pointers on the other hand can be copied indefinitely since the garbage collector is keeping track of them. LFreeable pointers can be turned into foreign pointers permanently using 8, or temporarily by focusing. Placeholders classify pointers that either point to junk or to data that is not allowed to be used (to maintain linearity). QLinear computations are arrows over linear data, but monads over nonlinear data. #Monadic bind (for nonlinear data). Monadic return 6sContraction and weakening are available for pointers created from ForeignPtrs (and pointers I am focusing on). <Focusing on a pointer. B4Split a pointer to a pair, into a pair of pointers. cz{ | } ~   !"#$%&'()*+,-./0123456789:;<=>?@ABC  !"#$%&'()*+,-./0123456789:;<=>?@ABC  !"#$%&'()*+,-./01234589:76;<=>?@ABXz{ | } ~   !"#$%&'()*+,-./0123456789:;<=>?@AB Safe-InferredHJKMO$Distributivity with monad products. CDEFGHIJKLMNOPQRSTUVW CDEFGHIJKLMNOCDEWVUTSFGRHQIJKLMNPOCDEFGHIJKLMNOPQRSTUVWNone2346JKXIAn automatic lifter. The idea of automatic lifting is due to Dan Piponi. XYZ[\]^_`XY XY`_^]\[ZXYZ[\]^_` Safe-Inferred368JKc/Transformers that distribute over one another.  For reorganizing a monad stack. fXPop out the underlying monad of a transformer, with a data structure to hold the state. g Put the data structure back in. iThe opposite of takeout. k,Left distributivity of a monad transformer. lRight distributivity. abcdefghijklmnopqrstuvw abcdefghijklhefgwvutijcdabsrqponmklabcdefghijklmnopqrstuvwNone!";HMxAn IO monad transformer.  I can't run x;. Instead, I run the monad inside it. This is done using y, and  from mmorph. The combination is only a monad if the parameter monad isn't nondeterministic. IOT Maybe and IOT State are monads, but IOT [] and IOT Cont are not. Should be integrated with STT. y Run an IOT. xyxyxyxy        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy   z{|}~xMonadCompose-0.8.0.0Control.LinearControl.Monad.PlusMonadControl.Monad.LifterControl.Monad.DistributiveControl.Monad.IOTFixIn PlaceholderForeignFreeablePointer SemiclosedOpenPairBlankFnASt>>==rtnrunbimapassoc1assoc2drop1drop2undrop1undrop2swapapplycurrydistrvoid'bimap'opengetStdin getStdout getStderrcloseclose1fileSize setFileSizeeofseektellcharline lookaheadcontentsputCputSrandomfrstsecndfixInj1fixInj2 contraction weakening newForeignnewgetfreefocuspeek'poke' changeTypepeek1poke1split::+PlusunPlusinlinrmapPluscommassoc cancelLeft cancelRightrefl $fMMonad::+ $fMFunctor::+$fMonadTrans::+$fAlternative::+$fMonadPlus::+$fApplicative::+ $fFunctor::+ $fMonad::+Lifterlf $fLiftermm $fLiftermn $fLifterm::+$fLifterIdentityIdentity $fLifterSTST $fLifterIOIO $fLifterSTIO Rightdistrrdist LeftdistrldistTakeouttakeoutcombineputinputin1ldist'rdist'$fRightdistrReaderT$fRightdistrStateT$fRightdistrStateT0$fLeftdistrListT$fLeftdistrWriterT$fLeftdistrErrorT$fLeftdistrMaybeT$fTakeoutWriterT(,)$fTakeoutReaderTIdentity$fTakeoutStateT(,)$fTakeoutStateT(,)0IOT Nonlineardummyliftalign updateWorld manipulate updateWorld1 helloWorld$fNonlinear(,,,,)$fNonlinear(,,,)$fNonlinear(,,)$fNonlinear(,)$fNonlinearDouble$fNonlinearFloat$fNonlinearInt$fNonlinearInteger$fNonlinearOrdering$fNonlinearBool $fNonlinear[]$fNonlinearChar$fStorablePair$fStorableBlank$fArrowChoiceA$fArrowA $fCategory*A mmorph-1.0.4Control.Monad.MorphhoistSequenceSeqNoneRet runSequence_squash_hoist $fMFunctorIOT $fMMonadIOT$fMonadTransIOT $fMonadIOIOT $fFunctorIOT$fApplicativeIOT $fMonadIOT