ll      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk Safe-Inferedlmnopqlmnopqlmnopq Safe-Infered ((Debugging) options to give to compiler .o file to link with File to #include in main program "main is defined externally (in C) Checking level (0 none) Generate debug info Extra GCC option Output a .h file too Show parse tree Show generated code #Generate trace at run-time (debug) Keep intermediate C file rstuvwxyz{|}~     rstuvwxyz{|}~ .rtsuwvxyz{|}~          Safe-Infered    Safe-Infered Safe-InferedLET TmpVar Local TmpVar C !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUC !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU  !",MLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#NOPQRSTU Safe-Infered VWXYZ[\]^_`abcdefghijklmnopqrstu VWXYZ[\]^_`abcdefghijklmnopqrstu VWXYZ[\]^_`abcdefghijklmnopqrstu  Safe-Inferedtvwxyz{|}~tvwxyz{|}~vY~}|{zyxw None,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     (      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       Safe-Infered     Safe-Infered(!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH(!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH !#"$%&'()*+DCBA@?>=<;:9876543210/.-,EFGH  Safe-InferedIJKLIJKLIJKL Safe-Infered MNOPQRSTUV MNOPQRSTUVM VUTSRQPONportable experimentaleb@dcs.st-and.ac.uk Safe-Infered:Compile a source file in supercombinator language to a .o 1Link a collection of .o files into an executable Input file name Output file name &Interface (.ei) file name, if desired Input file name Output file name &Interface (.ei) file name, if desired Output file name &Interface (.ei) file name, if desired  Declarations  Object files Executable filename    non-portable experimentaleb@cs.st-andrews.ac.uk Safe-Infered,Top level declarations Export a C type Link to a C library Include a C header 'Epic function defined in a separate .o Normal function -Build a case alternative, with a name supply 0Build a function definition, with a name supply &Build expressions, with a name supply A sub-term, with a name supply 54Case alternative for constructor with the given tag 60Case alternative for a tuple with the given tag 7 Case alternative for a constant 8(Default case if no other branches apply :)While loops (primitive, for efficiency). ; While loop, with an accumulator >Evaluate an expression lazily ?Evaluate an expression but don'&t update the closure with the result. 1 | Use this if the expression has a side effect. DGEvaluate an expression under manually allocated memory. Creates a pool F of memory. All allocation is from this pool, and there is no garbage 1 collection. The pool is freed after evaluation. EBEvaluate an expression under garbage collected memory, and output + how much was allocated during evaluation. F'Build a constructor with the given tag GBuild a tuple H4Build a case expression with a list of alternatives I#Let bindings with an explicit name JAUpdate a local variable (could be an explicit name or bound with  a lambda, so we let it be an . KConstant string LConstant integer MConstant big integer NConstant float OConstant character PConstant bool QConstructor for the unit type R2Sequence terms --- evaluate the first then second ]:Project an argument from an expression which evaluates to  constructor form. ^Reference to a function name _Reference to a function name ` Application c#Compile a program to an executable d1Compile a program to an executable, with options eCompile a program to a .o f(Compile a program to a .o, with options gELink a collection of object files. By convention, the entry point is  the function called main. hALink a collection of object files, with options. By convention, ( the entry point is the function called main. kISome default definitions: putStr, putStrLn, readStr, append, intToString k !"#$%&'()*+,-./012345the tag RHS of alternative 6RHS of alternative 7 the constant 89:%Boolean test (most likely effectful) Body ;%Boolean test (most likely effectful) Accumulator (of type a) Body (of type a -> a) <=>?@ABCDSize of block to allocate Expression to evaluate EExpression to evaluate FTag GHIJKLMNOPQRSTUVWXYZ[\]Expression in constructor form Argument number ^_` function  argument abcdefghijkWXYZ[\]^_`abcdefghih  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkh b`HFG56789:;<>?@ABCIJ=KLMNOPQ]^_RDESWVUTX[ZY\!('&%$#")*43210/-,+.acegdfhij kd !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkWXYZ[\]^_`abcdefghij !"#$%&'()*+),-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs"tuvwxyz{|}~%&'      !"#$%&'()*+,-./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 { | } ~                                                                                                                                                                   ! " #       " % & ' ( $ O 6 9 1 4 2 : ; < > P % & S Q D E F ? A B C ' . ( )  W [ \ ] *+,-./0123456789:;<=>?@ABCDEFGH epic-0.9.3 Epic.Epic Epic.Compiler Paths_epic Epic.Language Epic.SimplifyEpic.Evaluator Epic.Bytecode Epic.CodegenC Epic.Lexer Epic.ParserEpic.ScopecheckEpic.StackcodeEpic.CodegenStack Epic.OTTLangOpExprNameTypeCompileOptionsLinkObjMainInc ExternalMainCheckingDebugGCCOpt MakeHeader ShowParseTree ShowBytecodeTraceKeepCcompile compileOpts compileDeclslinkProgramEpicDeclCTypeLinkIncludeEpicExtEpicFnlet_ AlternativeEpicExprtermTermplus_minus_times_divide_plusF_minusF_timesF_divideF_eq_lt_lte_gt_gte_eqF_ltF_lteF_gtF_gteF_shiftl_shiftr_contuple constcase defaultcaseif_while_ whileAcc_error_op_lazy_effect_foreign_ foreignL_ foreignConst_foreignConstL_malloc_ mallocTrace_con_tuple_case_letN_update_strintbigintfloatcharboolunit_+>tyInttyBigInttyChartyBooltyFloattyStringtyPtrtyUnittyAnytyC!.fnref@@ mkProgramname compileWith compileObjcompileObjWithlinkWithrunevaluate basic_defsversion getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameResultFailureSuccessCGFlagStrictInlineHOAShoasmkHOASSubstVsubstEvalDecl EDirectiveEDeclenameedefDeclExternfargsfnamefrettypefdeffexport fcompflagsFuncBindfun_argslocalsdefnflagsShRShLOpFGEOpFGTOpFLEOpFLTOpFEQFDivideFTimesFMinusFPlusOpGEOpGTOpLEOpLTOpEQModuloDivideTimesMinusPlus Allocator TracePool GrowablePool FixedPoolHRHSHBindHExpCaseAlt DefaultCaseConstAlt alt_constHAlt alt_numargs alt_bindsAltalt_tagalt_argsalt_exprLazyForeignCall ForeignCallWithMem ImpossibleErrorHLamLamUpdateHLetLetMLetWhileAccWhileIfCaseProjConstConParEffectLazyAppRVHFunTagContextMNUNMkUnusedMkUnitMkBoolMkString MkBigFloatMkFloatMkCharMkBigIntMkIntTyEvalTyLinTyFunTyCTypeTyDataTyAnyTyUnitTyPtrTyString TyBigFloatTyBigIntTyFloatTyBoolTyCharTyIntshowuser quotenameshowCarityappForm checkLeveltempfile environment$fMonadPlusResult $fMonadResult$fHOASCaseAltCaseAlt$fHOASExprExpr$fHOASFuncExpr $fHOAS(,)(,) $fHOAS[][]$fSubstVCaseAlt $fSubstVExpr $fSubstV(,) $fSubstV[]$fShowAllocator $fShowExpr $fShowCaseAlt $fOrdCaseAlt$fEq(->) $fEq(->)0 $fShowName $fShowType simplifyAlleval$fQuoteCaseAlt $fQuoteExpr $fQuote(,) $fQuote[]RETURNTailCallMiddleTail CompileStateCS arg_types num_localsnext_tmp string_poolmax_tmp next_labelFunCodeCodeBytecodeByteOpCOMMENTTRACEERRORDRETURNEVALINTEVALJUMPJFALSE BREAKFALSEMEMORYWHILEACCWHILELABELCONSTSTMPSLOCALSOPIFINTCASECASEPROJVARPROJSTRINGBIGFLOATFLOATBIGINTINTUNUSEDUNITCONNOASSIGN TMPASSIGNASSIGN DROPROOTS ADDTMPROOT ADDVARROOTGROWROOTVARFOREIGNADDARGSTHUNKTAILCALLCALLStrVarTmpVarLocalscompilepeephole peephole'evalledcodegenCcodegenH writeIFace showextargs fileHeader mainDrivershowargshowargsshowlistheaderswrappers wrapperArgsworkerstmpconstvloc quickcallthunk compileBody declareconstsdeclare foreignArgscToEpiccastFromepicToC foreignArgdoOpctyctysctyargexportCexportHTokenTokenEOF TokenInclude TokenGrowable TokenFixed TokenMemory TokenExternTokenDotTokenLamTokenBar TokenComma TokenSemi TokenProjTokenImpossible TokenError TokenEffect TokenStrictTokenPar TokenLazyTokenIn TokenUnused TokenWhile TokenElse TokenThenTokenIfTokenOf TokenCaseTokenLet TokenCType TokenExport TokenDefaultTokenCon TokenUnit TokenColon TokenArrowTokenShRTokenShLTokenFLTTokenFGTTokenFLETokenFGETokenFEQTokenLTTokenGTTokenLETokenGETokenEQ TokenEquals TokenFDivide TokenFTimes TokenFMinus TokenFPlusTokenMod TokenDivide TokenTimes TokenMinus TokenPlusTokenCSBTokenOSBTokenCCBTokenOCBTokenCBTokenOB TokenInline TokenLink TokenCInclude TokenForeign TokenFunType TokenTyEval TokenTyLinear TokenTyCType TokenDataType TokenAnyType TokenUnitType TokenPtrTypeTokenStringTypeTokenBigFloatTypeTokenFloatType TokenBoolType TokenCharTypeTokenBigIntType TokenIntType TokenBool TokenChar TokenBigFloat TokenBigInt TokenFloatTokenInt TokenString TokenNameP LineNumber getLineNo getFileName getContentthenPreturnPfailPcatchP happyError reportErrorlexerlexErrorlexerEatCommentlexerEatToNewlinelexNumreadNum lexStringlexChar isAllowedlexVar lexSpecialmknamegetstrgetstr'getchar HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn6 happyOut6happyIn7 happyOut7happyIn8 happyOut8happyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_3happyReduction_3 happyReduce_4happyReduction_4 happyReduce_5happyReduction_5 happyReduce_6happyReduction_6 happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'mkparsemkexprmkdeclhappySeqmkBindmkExternparse parseExpr parseDecl parseFile happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqRtoVrtovdoRtoVcheckAll scopecheckv_ise $fRtoVCaseAlt $fRtoVExpr $fRtoVFunc $fRtoV(,)$fRtoV[]NotImplementedDISCARDSLIDEPUSHTmpLocworkerOTTermOTTYOTSwitchOTTlOTHdOTRecOTAppOTLamOTVOTRef$fShowEpicDecl $fLetExpr(,) $fLetExpr(->)$fAlternative(,)$fAlternative(->)$fAlternativeStateT$fAlternativeExpr $fCases[]$fCasesCaseAlt $fEpicFn(,) $fEpicFn(->)$fEpicFnStateT $fEpicFnExpr $fEpicExpr(,)$fEpicExpr(->) $fEpicExpr[]$fEpicExprStateT$fEpicExprExpr $fShowStateT