!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./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,SafeSSafe -9;<=AOQRTf !"#$%&'()*+,-./0123456789i !"#$%&'()*+,-./012,-.*+/0'()%&987#$6543!" 12 !"#$%&'()*+,-./0123456789Safe*+-69:;<=?ADNOQRT[cfOWe 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.<:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr<WXYJKLMNOPQRSTUVHIZ[\]^_`abcdFGCDE@AB>?e<=:;utsfghijklmnopqr%:;<=>?@ABCDEFGHIJ KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuSafevwxyz:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrvwxyzvwxyzvwxyzSafe {|}~:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr{|}~ {|}~{|}~ Safe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr Safe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr Safe :;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr  Safe :;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr  Safe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe::;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr Safe %&-:OT[ Safe 69:;<=DR Safe*,9:;<=DORTf !"#$%&'()*+,-./012Safe9;Tf     :;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr                Safe,DQR !"#$%&'()*+,-./012Safe:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrSafe     Safe!"#$%&:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr!#"$%&!"#$%&!"#$%&Safe'()*+,-./01234:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqr'+/(,1*.)-0234'()*+,-./01234' ()*+,-./01234Safe 9;<=DRTY56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~W !"#$%&'()*+,-./012:;<=>?@BACDEFGHIJNRSQMULKOPTVWXYZ[\]^_`abcdefghijklmnopqrvwxyz{|}~!#"$%&'+/(,1*.)-0234567B?<;D>:9=8@ACEFGHIJKLMNOPQRSTUVWXYZYHG789:;<=>?@ABCDEF56~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[IJKLMNOPQRSTUVWXYZI56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe 9:;<=DRTf Safe,-:<=DQRTf!Safe:<=DR["Safe-9:;<=DORTf#Safe-9;<=ADORTf            $Safe9;<=DR#  !"#$%&'()*+,-./  #/ .-,+*)('&%$#"!   !"#$%&'()*+,-./%Safe+9:;<=DNORT[a01234012340123401234&Safe9;<=DR56789:;<=>?@ABCDEFGHIJKLMNOP56785678PONMLKJIHGFEDCBA@?>=<;:956789:;<=>?@ABCDEFGHIJKLMNOP'Safe 9;<=DRcQRSTUVWXYZ[\]^_`abcdefghijQRQRjihgfedcba`_^]\[ZYXWVUTSQRSTUVWXYZ[\]^_`abcdefghij(Safe 9;<=DRTfklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkklmnopqrstuvwxyz{|}~)Safe9;<=*Safe9;<=  +SafeOTf-./0123456789:;<=>??@AABCDEFGHIJIKKLMNOPPQRRSSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ? @   A B E C D  9      !"#$%&'()*++,-+.,7~/012  3456789:;<=>!?@AB(CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl=mnopqrstuvwxyz{|}~   F                          !!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""########## # # # # ###########$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$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({(|(}(~((((((((((((())))))))))))))))))))))))))))*********+++++++++++<++++++?     1DeepDarkFantasy-0.2017.8.4-AsXxUTJy4aPDABZD3MERCrDDF.UtilDDF.Meta.VectorTFDDF.Meta.FreeVector DDF.Meta.DualDDF.Meta.InterpreterDDF.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.Lang DDF.CombineDDF.DiffDDF.Eval DDF.GDiffDDF.ImpWDDF.ShowDDF.PolyDDF.SizeDDF.UInt DDF.UnHOAS DDF.UnLiftEnv DDF.WithDiffDDF.XorDDF.ImportMeta RandRange randRangevarsisSquare$fRandRange(,)$fRandRangeFloat$fRandRangeDouble $fRandRange() $fRandom(,) $fRandom()VectorTFZeroBasisPlusMult $fEqVectorTF $fOrdVectorTF$fFunctorVectorTF FreeVector runFreeVectorDualrunDualdualOrigdualDiffmkDual $fOrdDual$fEqDualRunImpWRImpWNoImpWRunImpWWeight weightConProdConprodConUnHOAS runUnHOASCombineEvalrunEval combineLeft combineRightrunImpW2RunImpWRrunImpWR2RunImpW $fWeight(,) $fWeightFloat$fWeightDouble $fWeight()$fProdConShowlr$fProdConRandRangelr$fProdConRandomlrNTSconvSNTconv BiFunctorbimapMonadbindjoin ApplicativepureapFunctormapLiftEnvliftEnvDBIzsabsapphoascomflipidconstscombduplet_Monoidzeroplusconst1map2returnbind2map1join1bimap2bimap3flip1flip2let_2com2lamlam2lam3lam4app2app3app4app5plus2noEnvscomb2plus1dup1 $fNTkkreprxx $fNTkkreprlr$fNTSTYPETYPEreprl(,)FixfixrunFixfix1runFix1Floatfloat floatZerofloatOne floatPlus floatMinus floatMult floatDividefloatExp freeVector freeVector1runFreeVector1runFreeVector2Optionnothingjust optionMatchjust1ProdmkProdzrofstswapcurryuncurryzro1fst1mkProd1mkProd2curry1dualdual1mkDual2 dualOrig1 dualDiff1SumleftrightsumMatch sumMatch2left1right1UnitunitYy undefinedy1y2Listnilcons listMatch listAppendcons2 listMatch2CharcharIOputStrLnBoolbooliteite1ite2ite3Doubledouble doubleZero doubleOne doublePlus doubleMinus doubleMult doubleDivide doubleExpdoubleEq doublePlus1 doublePlus2 doubleMinus2 doubleMult2 doubleDivide2 doubleExp1 doubleEq2EnvTDynArgWeakNextPUnkStaticStaFunOpendynamicapp_openpe $fDoubleP$fBoolP$fDBIPVectormultdivide toFreeVectorGroupinvertminusminus2mult1mult2divide2invert1minus1divide1reciprecip1 toFreeVector1DiffrunDiffGDiffrunGDiffDiffTypeMapempty 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()$fProdConVectorlr$fProdConReifylr$fProdConMonoidlr$fReifyrepr(,)$fReifyrDouble $fReifyr() $fLangCombine$fFreeVectorCombine $fFixCombine$fDiffWrapperCombine$fVectorTFCombine $fIOCombine$fMonadCombinem$fApplicativeCombinem$fFunctorCombinem $fListCombine $fYCombine $fIntCombine $fSumCombine $fUnitCombine $fDualCombine$fBimapCombine $fMapCombine$fOptionCombine$fFloatCombine$fDoubleCombine $fProdCombine $fCharCombine $fBoolCombine $fDBICombine $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 $fDBIDiffcomb $fLangEval$fFreeVectorEval $fFixEval$fDiffWrapperEval$fVectorTFEval$fIOEval $fMonadEvalIO$fApplicativeEvalIO$fFunctorEvalIO $fListEval$fYEval $fIntEval $fSumEval $fUnitEval $fDualEval $fBimapEval $fMapEval $fOptionEval $fFloatEval $fDoubleEval $fProdEval $fCharEval $fBoolEval $fDBIEval $fLangGDiff$fFreeVectorGDiff $fFixGDiff$fDiffWrapperGDiff $fListGDiff $fIOGDiff$fMonadGDiffIO$fApplicativeGDiffIO$fFunctorGDiffIO$fYGDiff $fIntGDiff $fSumGDiff $fUnitGDiff $fBimapGDiff $fMapGDiff $fOptionGDiff $fFloatGDiff$fVectorTFGDiff $fDoubleGDiff $fDualGDiff $fProdGDiff $fCharGDiff $fBoolGDiff $fDBIGDiffrunImpW $fLangImpW$fFreeVectorImpW $fFixImpW$fDiffWrapperImpW$fVectorTFImpW $fMonadImpWx$fApplicativeImpWx$fFunctorImpWx$fYImpW $fListImpW$fIOImpW $fIntImpW $fSumImpW $fUnitImpW $fDualImpW $fBimapImpW $fMapImpW $fOptionImpW $fFloatImpW $fDoubleImpW $fProdImpW $fCharImpW $fBoolImpW $fDBIImpWShowrunShowASTLeafAppLamappASTlamASTname $fLangShow$fFreeVectorShow $fFixShow$fDiffWrapperShow$fVectorTFShow $fMonadShowx$fApplicativeShowx$fFunctorShowx$fIOShow$fYShow $fListShow $fIntShow $fSumShow $fUnitShow $fDualShow $fBimapShow $fMapShow $fOptionShow $fFloatShow $fDoubleShow $fProdShow $fCharShow $fBoolShow $fDBIShow $fShowASTpolyl2compsolvemainSizerunSizeone $fLangSize$fFreeVectorSize $fFixSize$fDiffWrapperSize$fVectorTFSize $fMonadSizex$fApplicativeSizex$fFunctorSizex $fListSize$fYSize$fIOSize $fIntSize $fSumSize $fUnitSize $fBimapSize $fDualSize $fProdSize $fMapSize $fFloatSize $fDoubleSize $fOptionSize $fCharSize $fBoolSize $fDBISizeUInt $fLangUInt$fFreeVectorUInt $fFixUInt$fDiffWrapperUInt$fVectorTFUInt $fListUInt$fIOUInt $fMonadUIntx$fApplicativeUIntx$fFunctorUIntx$fYUInt $fIntUInt $fSumUInt $fUnitUInt $fOptionUInt $fProdUInt $fMapUInt $fDualUInt $fBimapUInt $fFloatUInt $fDoubleUInt $fCharUInt $fBoolUInt $fDBIUInt $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()$fProdConWithDifflrXOR 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