^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                           !!!!!!"""""############################$$$$$$$$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-&.&/&0&1&2&3&4&5&6&7&8&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H'I'J'K'L'M'N'O'P'Q'R'S'T'U'V'W'X'Y'Z'['\']'^'_'`'a'b'c'd(e(f(g(h(i(j(k(l)m)n)o)p)q)r)s)t)u)v)w)x)y)z){)|)})~))))))))))))))))))))))))))))))*****************+SafeL  Safe2 !F algebra of a Term Vector Spaces     SafeSafe+SafeRSafe*+-69:;<=?ADNOQRT[cf1We use a variant of HOAS so it can be compile to DBI, which is more compositional (No Negative Occurence). It require explicit lifting of variables. Use lam to do automatic lifting of variables.< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRST<9:;,-./012345678*+<=>?@ABCDEF()%&'"#$ !GWVUHIJKLMNOPQRST% !"#$%&'()*+, -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWSafeXYZ[\ !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTXYZ[\XYZ[\XYZ[\Safe ]^_`abcde !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRST]^_`abcde ]^_`abcde]^_`abcdeSafefghijk !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTfhgijkfghijkfghijk Safelmnop !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTlmnoplmnoplmnop Safe qrstuvwxyz{| !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTqtvwursxyz{| qrstuvwxyz{|qrstuvwxyz{| Safe }~ !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTqtvwursxyz{|}~ }~}~ Safe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRST Safe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe: !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRST Safe %&-:OT[ Safe 69:;<=DR Safe*,9:;<=DORTfSafe9;Tf !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTlmnopqtvwursxyz{| Safe,DQRSafe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe   Safe !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTSafe      !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTlmnopqtvwursxyz{|               Safe 9;<=DRTV !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl@ !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTXYZ[\]^_`abcdefhgijklmnopqtvwursxyz{|}~     $!& "#%'()*+,-./0123456789:;=+,-./0123456789:;<F !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklSafe,-:<=DQRTfmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmmnopqrstuvwxyz{|}~Safe:<=DR[ Safe9;<=DR++&!SafeDT"Safe+9:;<=DNORT[a#Safe9;<=DR$None*9:;<=DOQRTcf      H !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTXYZ[\]^_`abcdefhgijklmnopqtvwursxyz{|}~     $!& "#%'()*+,-./0123456789:;<           %None<=H !"$#%&'()*+,0453/7.-12689:;<=>?@ABCDEFGHIJKLMNOPQRSTXYZ[\]^_`abcdefhgijklmnopqtvwursxyz{|}~     $!& "#%'()*+,-./0123456789:;<&Safe 9;<=DRTf-./0123456789:;<=>?@ABCDEFG-./-./GFEDCBA@?>=<;:9876543210-./0123456789:;<=>?@ABCDEFG'Safe9;<=HIJKLMNOPQRSTUVWXYZ[\]^_`abcHIJKHIJKcba`_^]\[ZYXWVUTSRQPONMLHIJKLMNOPQRSTUVWXYZ[\]^_`abc(Safe9;<=defghijkdefgdefgkjihdefghijk)Safe-9;<=ADOQRTf0lmnopqrstuvwxyz{|}~ lmonpqrstuvwx0tursvpqmnolwx~}|{zy+lmnopqrstuvwxyz{|}~*NoneOTf,-./0123456789:;<==>??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=>   ? @ C A B   7     5dez !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS;TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~D                                           !!!!!!"""""############################$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#%$%%%&%'%(%)%*%+%,%-%.%/%0%1%2%3%4%5%6%7%8&9&9&:&;&<&=&>&?&@&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R'S'S'T'U'V'W'X'Y'Z'['\']'^'_'`'a'b'c'd'e'f'g'h'i'j'k'l'm(n(o(p(q(r(s(t(u)v)w)x)w)y)y)z){)|)})~)))))))))))))))))))))))))))))))))))))*****************      2DeepDarkFantasy-0.2017.8.13-4r8yvPMLgsEHp8cAm15tTADDF.UtilDDF.Meta.VectorTFDDF.Meta.FreeVector DDF.Meta.DualDDF.DBIDDF.Fix DDF.FloatDDF.FreeVector DDF.OptionDDF.ProdDDF.DualDDF.SumDDF.UnitDDF.YDDF.ListDDF.CharDDF.IODDF.Bool DDF.DoubleDDF.PE DDF.Vector DDF.Meta.DiffDDF.MapDDF.Meta.DiffWrapperDDF.DiffWrapper DDF.VectorTFDDF.Int DDF.BimapDDF.LangDDF.DiffDDF.EvalDDF.Show DDF.Sam.Hello DDF.Sam.PolyDDF.Size DDF.TermGenDDF.Term DDF.UnHOAS DDF.UnLiftEnv DDF.WithDiffDDF.ImpW DDF.Sam.XorDDF.ImportMeta RandRange randRangeisSquare$fRandRange(,)$fRandRangeFloat$fRandRangeDouble $fRandRange() $fRandom(,) $fRandom()VectorTFZeroBasisPlusMult $fEqVectorTF $fOrdVectorTF$fFunctorVectorTF FreeVector runFreeVectorDualrunDualdualOrigdualDiffmkDual $fOrdDual$fEqDualNTSconvSNTconv BiFunctorbimapMonadbindjoin ApplicativepureapFunctormapLiftEnvliftEnvDBIzsabsapphoascomflipidconstscombduplet_Monoidzeroplusconst1map2returnbind2map1join1bimap2bimap3flip1flip2let_2com2lamlam2lam3lam4app2app3app4app5plus2noEnvscomb2plus1dup1 $fNTkkreprxx $fNTkkreprlr$fNTSTYPETYPEreprl(,)FixfixrunFixfix1runFix1Floatfloat floatZerofloatOne floatPlus floatMinus floatMult floatDividefloatExp freeVector freeVector1runFreeVector1runFreeVector2Optionnothingjust optionMatchjust1ProdmkProdzrofstswapcurryuncurryzro1fst1mkProd1mkProd2curry1dualdual1mkDual2 dualOrig1 dualDiff1SumleftrightsumMatch sumMatch2left1right1UnitunitYy undefinedy1y2Listnilcons listMatch listAppendcons2 listMatch2 listAppend2CharcharIOputStrLnstring putStrLn1Boolbooliteite1ite2ite3Doubledouble doubleZero doubleOne doublePlus doubleMinus doubleMult doubleDivide doubleExpdoubleEq doublePlus1 doublePlus2 doubleMinus2 doubleMult2 doubleDivide2 doubleExp1 doubleEq2EnvTDynArgWeakNextPUnkStaticStaFunOpendynamicapp_openpe $fDoubleP$fBoolP$fDBIPVectormultdivide toFreeVectorGroupinvertminusminus2mult1mult2divide2invert1minus1divide1reciprecip1 toFreeVector1DiffrunDiffDiffTypeMapempty singletonlookupaltermapMap unionWithinsertOrddiffOrdlookup2 unionWith1mapMap1mapMap2insert2alter2 singleton2 DiffWrapperrunDiffWrapper FDiffType diffWrapperbasisvtfMatch vtfMatch4 vtfMatch5IntintpredisZeropred1isZero1BimapsizelookupLlookupRtoMapLtoMapRupdateLupdateRlookupL2size1ReifyreifyLangexfalsowriter runWriter float2Double double2FloatstaterunStateiteratebuildFreeVector toSVTFBuildergetgetVarupdate updateWengertvtfCata SVTFBuilderFreeVectorBuilderuncurry1 optionMatch2 optionMatch3writer1 runWriter1 float2Double1 floatExp1state1 runState1 runState2toSVTFBuilder1 double2Float1get1return1update1updateWengert1updateWengert2vtfCata1$fVectorrDouble$fGrouprDouble$fMonoidTYPErDouble$fOrdInt$fVectorrStateT$fGrouprStateT$fMonoidTYPErStateT $fVectorrFix $fGrouprFix$fMonoidTYPErFix $fVectorrMap $fGrouprMap$fMonoidTYPErMap$fVectorrFreeVector$fGrouprFreeVector$fMonoidTYPErFreeVector $fMonadrMaybe$fApplicativerMaybe$fFunctorrMaybe$fMonadrStateT$fApplicativerStateT$fFunctorrStateT$fMonadrWriterT$fApplicativerWriterT $fFunctorrMap$fFunctorrWriterT$fBiFunctorTYPErDual$fBiFunctorTYPEr(,)$fBiFunctorTYPErEither $fFunctorr[]$fMonoidTYPEr[] $fVectorr(->) $fGroupr(->)$fMonoidTYPEr(->)$fVectorrepr(,)$fGrouprepr(,)$fMonoidTYPErepr(,)$fFunctorrVectorTF$fVectorrFloat $fGrouprFloat$fMonoidTYPErFloat $fVectorr() $fGroupr()$fMonoidTYPEr()$fReifyrepr(,)$fReifyrDouble $fReifyr() $fOrdFloat $fOrdDouble$fOrd[]$fOrd() $fLangDiff$fFreeVectorDiff $fFixDiff$fDiffWrapperDiff$fVectorTFDiff $fMonadDiffIO$fApplicativeDiffIO$fFunctorDiffIO $fListDiff$fIODiff$fYDiff $fIntDiff $fSumDiff $fUnitDiff $fBimapDiff $fMapDiff $fOptionDiff $fFloatDiff $fDoubleDiff $fDualDiff $fProdDiff $fCharDiff $fBoolDiff $fDBIDiffEvalrunEvalcomb $fLangEval$fFreeVectorEval $fFixEval$fDiffWrapperEval$fVectorTFEval$fIOEval $fMonadEvalIO$fApplicativeEvalIO$fFunctorEvalIO $fListEval$fYEval $fIntEval $fSumEval $fUnitEval $fDualEval $fBimapEval $fMapEval $fOptionEval $fFloatEval $fDoubleEval $fProdEval $fCharEval $fBoolEval $fDBIEvalShowrunShowASTNodeNamePrefixInfixappASTlamASTvarsleafparenappscnamenameinameshowAST $fLangShow$fFreeVectorShow $fFixShow$fDiffWrapperShow$fVectorTFShow $fMonadShowx$fApplicativeShowx$fFunctorShowx$fIOShow$fYShow $fListShow $fIntShow $fSumShow $fUnitShow $fDualShow $fBimapShow $fMapShow $fOptionShow $fFloatShow $fDoubleShow $fProdShow $fCharShow $fBoolShow $fDBIShow $fShowASThelloworldspaceaddTailstrmainpolyl2compsolveSizerunSizeone $fLangSize$fFreeVectorSize $fFixSize$fDiffWrapperSize$fVectorTFSize $fMonadSizex$fApplicativeSizex$fFunctorSizex $fListSize$fYSize$fIOSize $fIntSize $fSumSize $fUnitSize $fBimapSize $fDualSize $fProdSize $fMapSize $fFloatSize $fDoubleSize $fOptionSize $fCharSize $fBoolSize $fDBISizeTermrunTermSubLsubSubLCmkT genInstance $fOptionTerm$fVectorTFTerm $fMapTerm$fYTerm $fProdTerm $fListTerm $fMonadTermIO$fApplicativeTermIO$fFunctorTermIO$fIOTerm $fSumTerm $fUnitTerm $fDualTerm $fDoubleTerm $fFloatTerm $fBimapTerm $fCharTerm$fDiffWrapperTerm$fFreeVectorTerm $fLangTerm $fFixTerm $fIntTerm $fBoolTerm $fDBITerm$fSubLLangFreeVector$fSubLLangDiffWrapper$fSubLLangDual $fSubLLangY$fSubLLangList $fSubLLangSum$fSubLLangOption$fSubLLangUnit $fSubLLangIO$fSubLLangProd$fSubLLangBimap $fSubLLangMap$fSubLLangVectorTF$fSubLLangFloat$fSubLLangChar $fSubLLangInt $fSubLLangFix$fSubLLangLang$fSubLLangBool$fSubLLangDouble $fSubLLangDBIUnHOAS runUnHOAS $fLangUnHOAS$fFreeVectorUnHOAS $fFixUnHOAS$fDiffWrapperUnHOAS$fVectorTFUnHOAS $fListUnHOAS $fIOUnHOAS$fMonadUnHOASx$fApplicativeUnHOASx$fFunctorUnHOASx $fYUnHOAS $fIntUnHOAS $fSumUnHOAS $fUnitUnHOAS $fDualUnHOAS $fBimapUnHOAS $fMapUnHOAS$fOptionUnHOAS $fFloatUnHOAS$fDoubleUnHOAS $fProdUnHOAS $fCharUnHOAS $fBoolUnHOAS $fDBIUnHOAS UnLiftEnv runUnLiftEnv unLiftEnv$fLangUnLiftEnv$fFreeVectorUnLiftEnv$fFixUnLiftEnv$fDiffWrapperUnLiftEnv$fVectorTFUnLiftEnv$fMonadUnLiftEnvm$fApplicativeUnLiftEnvm$fFunctorUnLiftEnvm$fListUnLiftEnv $fIOUnLiftEnv $fYUnLiftEnv$fIntUnLiftEnv$fSumUnLiftEnv$fBimapUnLiftEnv$fMapUnLiftEnv$fOptionUnLiftEnv$fUnitUnLiftEnv$fProdUnLiftEnv$fBoolUnLiftEnv$fCharUnLiftEnv$fDoubleUnLiftEnv$fFloatUnLiftEnv$fDualUnLiftEnv$fDBIUnLiftEnvWithDiffwithDiff withDiff1 selfWithDiff$fWithDiffrepr(,)$fWithDiffrFloat$fWithDiffrDouble $fWithDiffr()RunImpWRImpWNoImpWRunImpWWeight weightConProdConprodConrunImpWrunImpW2RunImpWRrunImpWR2RunImpW $fLangImpW$fFreeVectorImpW $fFixImpW$fDiffWrapperImpW$fVectorTFImpW $fMonadImpWx$fApplicativeImpWx$fFunctorImpWx$fYImpW $fListImpW$fIOImpW $fIntImpW $fSumImpW $fUnitImpW $fDualImpW $fBimapImpW $fMapImpW $fOptionImpW $fFloatImpW $fDoubleImpW $fProdImpW $fCharImpW $fBoolImpW $fDBIImpW $fWeight(,) $fWeightFloat$fWeightDouble $fWeight()$fProdConWithDifflr$fProdConVectorlr$fProdConReifylr$fProdConMonoidlr$fProdConShowlr$fProdConRandRangelr$fProdConRandomlrXOR doubleWeightsigmoidsigmoid1scaleAddwithBiasneuronneuron1hiddenxorNetl22evaldatasetlossfindXor!random-1.1-9tceXaeYIMZ4JrKq20Egog System.Random getStdRandom newStdGen getStdGen setStdGenmkStdGen RandomGensplitnextgenRangeStdGenRandomrandomrandomRrandomRsrandoms randomRIOrandomIObaseGHC.Base++ System.IOprint$ghc-prim GHC.Classes==GHC.Real/>>=GHC.Num*+-<<=compareGHC.ShowshowMaybe GHC.Types Constraint Data.VoidabsurdVoid Data.Proxy asProxyTypeOfProxyKProxy.String(constraints-0.9.1-1vY3iAr4WcZ3bo55wvbnrdData.Constraint.Forallforallinst1instTinstFinstForallForallFForallTForall1ForallVInstVinstVData.Constraint unmapDictmapDictbottomtop&&&contract strengthen2 strengthen1weaken2weaken1***refltrans\\withDictDict:-SubBottomClasscls:=>instransformers-0.5.2.0Control.Monad.Trans.State.LazyStateControl.Monad.Trans.Writer.LazyWriter