h$,       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  None >  funcons-toolsAn alternative is either a datatype constructor or the inclusion of some other type. The types are arbitrary funcon terms (with possible variables) that may require evaluation to be resolved to a . funcons-toolsA datatype has `zero or more' type parameters and `zero or more' alternatives. funcons-toolsA type parameter is of the form X:T where the name of the parameter,X, is optional. When present, X< can be used to specify the type of constructors. Variable X be a sequence variable. funcons-toolsThe typing environment maps datatype names to their definitions. funcons-tools Representation of builtin types. funcons-tools(Funcon term representation identical to /, but with meta-variables./ funcons-toolsInternal representation of funcon terms. The generic constructors 0 and 1 use names to represent nullary funcons and applications of funcons to other terms. Funcon terms are easily created using =, or via the smart constructors exported by  Funcons.Core.= funcons-toolsBuild funcon terms by applying a funcon name to `zero or more' funcon terms. This function is useful for defining smart constructors, e,g, handle_thrown_ :: [Funcons] -> Funcons handle_thrown_ = applyFuncon "handle-thrown"or alternatively, handle_thrown_ :: Funcons -> Funcons -> Funcons handle_thrown_ x y = applyFuncon "handle-thrown" [x,y]  funcons-toolsCreates a list of funcon terms.> funcons-toolsCreates a set of funcon terms.? funcons-toolsCreates an integer literal.@ funcons-toolsCreates a natural literal.C funcons-toolsCreates an atom from a  .D funcons-toolsCreates a string literal.  funcons-toolsThe empty map as a /.  funcons-toolsThe empty map as a /.  funcons-toolsThe empty set as a /.N funcons-toolsCreates a tuple of funcon terms. tuple_ :: [Funcons] -> Funcons tuple_ = FTupleQ funcons-tools Returns the unicode representation of an assci value. Otherwise it returns the original value.-Attempt to downcast a funcon term to a value.` funcons-tools>Lookup the definition of a datatype in the typing environment.a funcons-tools The empty .b funcons-toolsUnites a list of s.c funcons-tools Unites two s.d funcons-tools Creates a  from a list.      .-,+*)('&%$#"! /<;:9876543201 = > ?@ABCDEFGHIJKLM N O P Q R S TUVWX Y Z [\ ]^ _`abcdNone #ejihgfklmnopqrstuvwxyz{|}~klmnopqrstuvwxyz{ejihgf|}~ None $#lmnolmnoNone ?$L:: None &w funcons-toolsPretty-print a . funcons-toolsPretty-print a sequence of . funcons-toolsPretty-print a /. funcons-toolsPretty-print a sequence of /. funcons-toolsPretty-print a .  funcons-toolsPretty-print a sort or        None&  None >& None >B* funcons-toolsA map storing the values of input entities. funcons-toolsa map storing the values of output entities. funcons-toolsa map storing the values of control entities. funcons-toolsa map storing the values of  inherited entities. funcons-toolsA map storing the values of mutable entities. funcons-toolsMonadic type for the propagation of semantic entities and meta-information on the evaluation of funcons. The meta-information includes a library of funcons (see ), a typing environment (see ), runtime options, etc.4The semantic entities are divided into five classes:inherited entities, propagated similar to values of a reader monad.mutable entities, propagated similar to values of a state monad.output entities, propagation similar to values of a write monad.control entities, similar to output entities except only a single control signal= can be emitted at once (signals do not form a monoid).input entities, propagated like values of a state monad, but access like value of a reader monad. This package provides simulated input/outout and real interaction via the   monad. See  Funcons.Tools.For each entity class a map is propagated, mapping entity names to values. This enables modular access to the entities. funcons-toolsMonadic type for the implicit propagation of meta-information on the evaluation of funcon terms (no semantic entities). It is separated from  to ensure that side-effects (access or modification of semantic entities) can not occur during syntactic rewrites.  funcons-toolsA single step on a funcon term produces either a funcon term or a (possibly empty or unary) sequence of values funcons-toolsAfter a term is fully rewritten it is either a value or a term that requires a computational step to proceed. This types forms the interface between syntactic rewrites and computational steps.  funcons-toolsFully rewritten to a value.  funcons-toolsFully rewritten to a term and the step required to continue evaluation. funcons-toolsDenotes whether an argument of a funcon should be evaluated or not. funcons-tools=Type synonym for the evaluation functions of nullary funcons. funcons-tools"Type synonym for value operations. funcons-tools?Type synonym for the evaluation function of non-strict funcons. funcons-toolsType synonym for the evaluation function of fully non-strict funcons. funcons-toolsType synonym for the evaluation function of strict funcons. The evaluation function of a $ receives fully evaluated arguments. funcons-toolsEvaluation functions capture the operational behaviour of a funcon. Evaluation functions come in multiple flavours, each with a different treatment of the arguments of the funcon. Before the application of an evaluation funcon, any argument may be evaluated, depending on the  of the argument. funcons-tools Funcons for which arguments are not evaluated. funcons-tools-Strict funcons whose arguments are evaluated. funcons-toolsFuncons for which some arguments are evaluated. funcons-tools Synonym for , for value operations. funcons-toolsFuncons without any arguments. funcons-toolsA funcon library maps funcon names to their evaluation functions. funcons-toolsCreates an empty . funcons-tools Unites two s. funcons-toolsRight-based union of s funcons-toolsUnites a list of s. funcons-toolsRight-based union of list of s funcons-tools Creates a  from a list. funcons-tools Function  implements a backtracking procedure. It receives two lists of alternatives as arguments, the first containing all rewrite rules of a funcon and the second all step rules. The first successful rule is the only rule fully executed. A rule is  unsuccessful if it throws an exception. Some of these exceptions (partial operation, sort error or pattern-match failure) cause the next alternative to be tried. Other exceptions (different forms of internal errors) will be propagated further. All side-effects of attempting a rule are discarded when a rule turns out not to be applicable.First all rewrite rules are attempted, therefore avoiding performing a step until it is absolutely necessary. This is a valid strategy as valid (I)MSOS rules can be considered in any order.When no rules are successfully executed to completetion a 'no rule exception' is thrown. funcons-toolsYields an error signaling that no rule is applicable. The funcon term argument may be used to provide a useful error message. funcons-toolsYields an error signaling that a sort error was encountered. These errors render a rule  inapplicable and a next rule is attempted when a backtracking procedure like  is applied. The funcon term argument may be used to provide a useful error message. funcons-toolsYields an error signaling that a partial operation was applied to a value outside of its domain (e.g. division by zero). These errors render a rule  inapplicable and a next rule is attempted when a backtracking procedure like  is applied. The funcon term argument may be used to provide a useful error message. funcons-tools+Returns a value as a fully rewritten term.  funcons-toolsYield a funcon term as the result of a syntactic rewrite. This function must be used instead of return%. The given term is fully rewritten. funcons-toolsYield a sequence of funcon terms as the result of a rewrite. This is only valid when all terms rewrite to a value funcons-tools(Yield a funcon term as the result of an 5 computation. This function must be used instead of return.  funcons-toolsYield a sequence of funcon terms as the result of a computation. This is only valid when all terms rewrite to a value funcons-toolsExecute a premise as either a rewrite or a step. Depending on whether only rewrites are necessary to yield a value, or whether a computational step is necessary, a different continuation is applied (first and second argument). Example usage: stepScope :: NonStrictFuncon --strict in first argument stepScope [FValue (Map e1), x] = premiseEval x rule1 step1 where rule1 v = rewritten v step1 stepX = do Map e0 <- getInh "environment" x' <- withInh "environment" (Map (union e1 e0)) stepX stepTo (scope_ [FValue e1, x'])  funcons-tools"Execute a computational step as a premise7. The result of the step is the returned funcon term.  funcons-tools Yield an  computation as a fully rewritten term. This function must be used in order to access entities in the definition of funcons. =             NoneF funcons-toolsAn environment mapping meta-variables to funcon terms. This environment is used by a substitution procedure to transform funcon terms from  representation to /. funcons-toolsThe empty substitution environment. Bindings are inserted by pattern-matching. funcons-tools Variant of  that applies substitution. funcons-tools Variant of  that applies substitution. funcons-toolsApply as many rewrites as possible to the term bound to the given variable in the meta-environment  None 2N funcons-toolsCSB supports five kinds of side conditions. Each of the side conditions are explained below. When a side condition is not accepted an exception is thrown that is caught by the backtrackign procedure . A value is a  ground value9 if it is not a thunk (and not composed out of thunks). funcons-toolsT1 == T2. Accepted only when T1 and T2 rewrite to equal ground values. funcons-tools T1 =/= T2. Accepted only when T1 and T2 rewrite to unequal ground values. funcons-toolsT1 : T2. Accepted only when T2 rewrites to a type and T1" rewrites to a value of that type. funcons-tools ~(T1 : T2). Accepted only when T2 rewrites to a type and T1 rewrites to a value not of that type. funcons-toolsT = P. Accepted only when T. rewrites to a value that matches the pattern P. (May produce new bindings in ). funcons-toolsPatterns for matching values (). funcons-tools$Patterns for matching funcon terms (). funcons-tools Variant of  that is lifted into the  monad. funcons-toolsMatching values with value patterns patterns. If the list of patterns is a singleton list, then  attempts to match the values as a tuple against the pattern as well.  funcons-tools#Match stricly values with patterns. funcons-tools Variant of . that applies substitute and pattern-matching. funcons-tools Variant of  that is lifted into the - monad. If all given terms are values, then  is used instead. funcons-tools4Match a sequence of terms to a sequence of patterns. funcons-tools Variant of  that is lifted into the  monad. funcons-tools$Executes a side condition, given an  environment, throwing possible exceptions, and possibly extending the environment.  funcons-toolsTo type check a sequence values simply checker whether all elements of the sequence are of the given type funcons-tools7Parameterisable evaluation function function for types.      None QC funcons-tools"Used for replacing meta-variables T6 in pattern annotations `P:T` with the type to which T+ is bound in some type-environment (if any) funcons-tools-Associates types (Terms) with meta-variables  funcons-tools Version of ; that does not replace the meta-variables in the given set funcons-tools Version of ; that does not replace the meta-variables in the given set None Z funcons-tools0Default values of entities can be specified for  inherited and mutable entities.  funcons-toolsFor the purpose of unit-testing it is advised to notify an interpreter of the existence of control, output and input entities as well. funcons-tools A list of 9s is used to declare (and possibly initialise) entities. funcons-tools%Get the value of some mutable entity. funcons-tools Variant of  that performs pattern-matching. funcons-tools%Set the value of some mutable entity. funcons-tools Variant of  that applies substitution. funcons-tools Provides extra values to a certain input entity, available to be consumed by the given  computation argument. funcons-tools Provides an exact8 amount of input for some input entity, that is to be  completely consumed by the given  computation. If less output is consumed a 'insufficient input consumed' exception is thrown. funcons-tools Variant of   that matches the given % to the consumed value in the given .  funcons-tools Variant of  that performs substitution. funcons-tools Variant of  that performs substitution. funcons-tools3Receive the value of a control entity from a given  computation. funcons-tools Variant of  receiveSignal that performs pattern-matching. funcons-tools&Signal a value of some control entity. funcons-tools Variant of  that applies substitution. funcons-tools Version of   that applies pattern-matching. funcons-tools%Get the value of an inherited entity. funcons-tools Version of  that applies pattern-matching. funcons-tools9Set the value of an inherited entity. The new value is only set for ' computation given as a third argument. funcons-tools Variant of  that performs substitution. funcons-tools*Add new values to a certain output entity. funcons-tools Variant of  that applies substitution. funcons-toolsRead the values of a certain output entity. The output is obtained from the ( computation given as a second argument. funcons-tools Variant of  that performs pattern-matching. None [ funcons-toolsCreate an environment from a list of bindings (String to Values) This function has been introduced for easy expression of the semantics of builtin identifiers  funcons-tools0A funcon library with funcons for builtin types.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd/0123456789:;< =>O?ABHIJFG@KLMDEC^]_NSWVXY[\UZTRQ !"#$%&'()*+,-.P `cbdaNone ` funcons-toolsThis function implements the ==CT=> relation. Compiling programs to executable funcons terms, removing occurrences of `meta-up`, `meta-down` and `meta-let` and `meta-bound`. funcons-toolsThis function implements the ==UL=> relation. Translating a funcon into its meta-representation funcons-toolsThis function implements the ==DL=> relation. Translating a meta-representation of a program into the actual programNone a_ None a None a None a None b# None bj None b None b None c= None c None c' None d None d  None e !None e& "None eW #None e $None e %None f &None f7'None fr(None f )None f *None g1+None gv,None h, funcons-toolsComputes the union over a sequence of maps. If the maps do not have disjoint domains a failure signal is raised.-None hk.None h/None h0None i 1None iG2None it3None i4None j 5None j9 6None jj7None j 8None j9None k9*:None k;None k<None l =None lu>None l?None l%@None m0+ANone mBNone mCNone nDNone n8 ENone nqFNone nGNone n HNone o0 INone oi JNoneoKNone t)NonetMNone  funcons-tools(The empty collection of entity defaults. funcons-tools Creates a main function for the default interpreter (no extension). The executable made from this main? function receives command line argumenst as explained above ( Funcons.Tools).  funcons-tools Creates a main function for the interpreter obtained by extending the default library with the funcons in the  argument. funcons-tools Creates a main function for the interpreter obtained by extending the main interpreter with the funcons in the ? argument and with default values for entities defined in the  argument. funcons-tools Creates a main function for the interpreter obtained by extending the main interpreter with the funcons in the  argument and with a = mapping datatypes to their constructors and type arguments. funcons-tools Creates a main function for the interpreter obtained by extending the main interpreter with funcons,  and a .  funcons-tools Creates a main7 function for the interpreter aware of only the given ,  and .  funcons-tools Creates a main7 function for the interpreter aware of only the given ,  and *, and the built-in types and operations.  funcons-toolsSame as , except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /, entities or datatypes specific to the object language. Includes the LM funcons. funcons-toolsSame as , except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /, entities or datatypes specific to the object language. Does not include the LM funcons. funcons-toolsSame as , except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /, entities or datatypes specific to the object language. Does not include the LM funcons. funcons-toolsCreates a main function by passing in a list of command line arguments and an optional initial / to execute. The / argument is optional as one of the command line arguments may refer to an .fct file or .config file that specifies an initial /% term. Useful when a translation to /! has been implemented in Haskell.% abcd% acbdNoneV?@?@Nonem  NOPNOQNORNOSNOTNOUNOVNOWNOXNOYNOZNO[ \ ] ^ _ ` 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 { | } ~ L                                                                           !!!!!!""""""""########$$$$$$$$$$$$$$$$%%%%%%&&&&&&&&&&&&&''''''''''''''''''''''(((((((((())))))))****************+++++++,,,,,,,,,,,,,,,----------------------..//000000000000011112222222222222222333333333333333333344444444555555666666666666666666666666777777778888888888888888999999999999999999999999999999999999999:::::::::::::::::;;;;<<<<<<<<<<<<<<<<<<<<<<<<===>>>>??????????????????????????????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BBBBBBBBBBBBBBCCDDDDDDDDDDEEEEEEEEEEEEEEE E E F F F F F F F F F F F F F G G G G G G G G G G H H H H H H H H H H I I I I I I I I J J J K K                  N N N N N N  N  N  N  N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N  N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N  N N N N N N N N N N N N N N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  N  NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO NO                                                                                                                                                                    ! ! ! " " " # # # $ $ $ % % % &' ' ' ( ( ( ) ) ) * * * +,- - - ./ / / 01 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 : : : ; ; ; < < < > > > ? ? ? @ @ @ AAAAAB B B C C C D D D E E E F F F G G G H H H I I I K -funcons-tools-0.2.0.13-KJm3P6NXplc3t1SpwzOyTz Funcons.EDSLFuncons.GLLParserFuncons.RunOptionsFuncons.ValueOperationsFuncons.MetaProgramming Funcons.CoreFuncons.Core.Manual Funcons.Tools Funcons.TypesFuncons.ParserFuncons.PrinterFuncons.ExceptionsFuncons.Simulation Funcons.MSOSFuncons.SubstitutionFuncons.PatternsFuncons.TypeSubstitutionFuncons.Entities)Funcons.Core.Values.ValueTypes.ValueTypes Funcons.Core.Values.TypesBuiltin,Funcons.Core.Values.Primitive.StringsBuiltin'Funcons.Core.Values.Primitive.Null.Null/Funcons.Core.Values.Primitive.Integers.Integers+Funcons.Core.Values.Primitive.Floats.Floats/Funcons.Core.Values.Primitive.CharactersBuiltin3Funcons.Core.Values.Primitive.Characters.Characters/Funcons.Core.Values.Primitive.Booleans.Booleans)Funcons.Core.Values.Primitive.BoolBuiltin-Funcons.Core.Values.Primitive.IntegersBuiltin+Funcons.Core.Values.Primitive.FloatsBuiltin)Funcons.Core.Values.Primitive.BitsBuiltin#Funcons.Core.Values.Primitive.Atoms-Funcons.Core.Values.Composite.Vectors.Vectors/Funcons.Core.Values.Composite.Variants.Variants+Funcons.Core.Values.Composite.Tuples.Tuples)Funcons.Core.Values.Composite.Trees.Trees-Funcons.Core.Values.Composite.Strings.Strings)Funcons.Core.Values.Composite.SetsBuiltin1Funcons.Core.Values.Composite.Sequences.Sequences3Funcons.Core.Values.Composite.References.References-Funcons.Core.Values.Composite.Records.Records-Funcons.Core.Values.Composite.Objects.Objects.Funcons.Core.Values.Composite.MultisetsBuiltin)Funcons.Core.Values.Composite.MapsBuiltin)Funcons.Core.Values.Composite.Lists.Lists+Funcons.Core.Values.Composite.GraphsBuiltin+Funcons.Core.Values.Composite.Graphs.Graphs.Funcons.Core.Values.Composite.DatatypesBuiltin1Funcons.Core.Values.Composite.Datatypes.Datatypes-Funcons.Core.Values.Composite.Classes.Classes'Funcons.Core.Values.Composite.Bits.Bits'Funcons.Core.Values.Composite.ASTs.ASTs-Funcons.Core.Values.Abstraction.Thunks.Thunks1Funcons.Core.Values.Abstraction.Patterns.Patterns/Funcons.Core.Values.Abstraction.Generic.Generic3Funcons.Core.Values.Abstraction.Functions.Functions0Funcons.Core.Computations.Normal.Storing.Storing0Funcons.Core.Computations.Normal.Linking.Linking8Funcons.Core.Computations.Normal.Interacting.Interacting.Funcons.Core.Computations.Normal.Giving.Giving2Funcons.Core.Computations.Normal.GeneratingBuiltin6Funcons.Core.Computations.Normal.Generating.Generating0Funcons.Core.Computations.Normal.Flowing.Flowing0Funcons.Core.Computations.Normal.Binding.Binding)Funcons.Core.Computations.AbnormalBuiltin4Funcons.Core.Computations.Abnormal.Throwing.Throwing+Funcons.Core.Computations.Abnormal.Sticking6Funcons.Core.Computations.Abnormal.Returning.Returning2Funcons.Core.Computations.Abnormal.Failing.Failing:Funcons.Core.Computations.Abnormal.Controlling.Controlling8Funcons.Core.Computations.Abnormal.Continuing.Continuing4Funcons.Core.Computations.Abnormal.Breaking.Breaking6Funcons.Core.Computations.Abnormal.Abrupting.AbruptingFuncons.Core.Library&Funcons.Core.Computations.TypesBuiltinFunconsCore-funcons-values-0.1.0.9-GrRVyB8ZR7nJh46v2e4fw1Funcons.Operations.Valuesnull__unString isString_upcastCharacterupcastNaturalsupcastIntegersupcastRationalsdowncastValueTypeQuestionMarkOpPlusOpStarOp SeqSortOp DataTypeAlttDataTypeInclusionnDataTypeMemberConstructorDataTypeMembersDataTypeMemberssTPattern TPWildCardTPVarTPSeqVarTPLit TPComputesTPComputesFromTPADT TypeParam TypeRelationTypesComputationTypesValuesFTermTVarTNameTAppTSeqTSetTMapTBindingTFunconTSortSeq TSortPower TSortUnion TSortInterTSortComplement TSortComputesTSortComputesFromTAnyFNameFAppFSetFMapFBindingFValueFSortSeq FSortPower FSortUnion FSortInterFSortComplement FSortComputesFSortComputesFrom applyFunconset_int_nat_bool_bool__atom_string_string__char_char__list__vector__tuple__float_ieee_float_32_ieee_float_64_type_vec_fvalues downcastType downcastValueisValisStringisCharisNatisIntisListisMapisTupisTypeisVec integers_values_vectors_ typeLookupemptyTypeRelation typeEnvUnions typeEnvUniontypeEnvFromListFSuffixSuffixComputesFrom SuffixSeqSuffixSortUnionSuffixSortInter SuffixPowerParser fct_parsefct_parse_either fvalue_parsefvalue_parse_either fvalue_parse_fvalue_parse_either_parseparser_a allParsesparsesWithErrorsfct_lexerSettingslexer lexerEither fct_keywords fct_keycharslNamepFuncons pFunconss pFunconsSeqpKeyPairpOppValues RunOptions mfuncon_term general_optsbuiltin_funconsexpected_outcomes given_inputs InputValues TestOptionsBuiltinFunconsOptionsGeneralOptionsdefaultRunOptionsoptionsOverride funcon_termbool_opt_defaultbool_opt do_refocus max_restartsdo_abrupt_terminatepp_full_environments show_result show_counts show_mutable hide_output hide_input hide_controlinteractive_modepp_string_outputs string_inputs show_testsshow_output_only auto_config csv_outputcsv_output_with_keys inputValuesbooleanOptionsbooleanOptions_ stringOptionsstringOptions_ allOptions allOptions_ run_optionsparseAndApplyConfig config_parsercfg_lexerSettings cfg_keychars cfg_keywords pRunOptionspSpecpGeneralchoosespBool pStringValue pFunconName pTestOutcomespBuiltinFuncons pInputValues showValues showValuesSeqshowOp showFunconsshowFunconsSeq showTypes showTermsIESortErrErr PartialOpInternalNoRuleNoMoreBranches SideCondFailInsufficientInputInsufficientInputConsumedPatternMismatch StepOnValue IExceptionInputOutputControl InheritedMutableMSOSRewrite Rewritten StrictnessStrict NonStrict NullaryFunconValueOpPartiallyStrictFunconNonStrictFuncon StrictFuncon EvalFunction FunconLibrary fromValOp fromSeqValOpfromNullaryValOplibEmptylibUnion libOverride libUnions libOverrides libFromList rewriteRules stepRules evalRulesnorulesortErr partialOp rewritten rewriteTo rewriteSeqTostepTo stepSeqTo premiseEval premiseStepcompstepEnvemptyEnv rewriteTermTo stepTermTolifted_envStoreenvStorelifted_envRewrite envRewrite SideCondition SCEquality SCInequality SCIsInSort SCNotInSortSCPatternMatchVPatternPADT VPWildCard VPMetaVar VPAnnotatedVPSeqVarVPLitVPTypeFPatternPValuePMetaVarPSeqVar PAnnotated PWildCard f2vPatternlifted_vsMatchvsMatchpremiselifted_fsMatchfsMatchlifted_sideCondition sideConditionisIn rewriteTypepat2term vpat2term typat2term HasTypeVar subsTypeVarsubsTypeVarWildcardTyAssocElemOfSubTyOfTypeEnvlimitedSubsTypeVarlimitedSubsTypeVarWildcard EntityDefault DefMutable DefInherited DefOutput DefControlDefInputEntityDefaultsgetMut getMutPattputMut putMutTermwithExtraInputwithExactInput matchInputwithExtraInputTermswithExactInputTermsreceiveSignalsreceiveSignalPatt raiseSignal raiseTermwithControlTermgetControlPattgetInh getInhPattwithInh withInhTermwriteOut writeOutTermreadOut readOutPatt env_fromlist_libraryapp0_app1_app2_app3_ty_starty_optty_plusty_negty_interty_unionty_powerctRelulReldlRelevalRelcompile env_entity store_entityatom_gen_entitytranslationStepcmp_MSOSReader cmp_MSOSStatemeta_up_ meta_down_ meta_let_eval_code_step_meta_eval step_codeast_term ast_valuetype_of_ step_ty_of is_in_type_is_stepIs_in_type is_value_is_val_ stepIs_value when_true_when_ stepWhen_true cast_to_type_cast_stepCast_to_type is_equal_is_eq_ stepIs_equaldatatype_values_ground_values_ ground_vals_types_ value_types_ empty_type_ to_string_ null_value_null_stepNull_value null_type_ stepNull_typebounded_integers_ bounded_ints_stepBounded_integerspositive_integers_ pos_ints_stepPositive_integersnegative_integers_ neg_ints_stepNegative_integersnatural_numbers_nats_stepNatural_numbersinteger_negate_int_neg_stepInteger_negateinteger_sequence_stepInteger_sequence binary32_ stepBinary32 binary64_ stepBinary64 binary128_ stepBinary128 decimal64_ stepDecimal64 decimal128_stepDecimal128float_formats_stepFloat_formatsascii_characters_ ascii_chars_unicode_characters_iso_latin_1_characters_latin_1_chars_$basic_multilingual_plane_characters_ bmp_chars_unicode_points_ basic_multilingual_plane_points_ascii_character_unicode_character_ unicode_char_ characters_chars_unicode_point_unicode_stepUnicode_pointiso_latin_1_points_stepIso_latin_1_points ascii_points_stepAscii_points ascii_char_stepAscii_character backspace_ stepBackspacehorizontal_tab_stepHorizontal_tab line_feed_ stepLine_feed form_feed_ stepForm_feedcarriage_return_stepCarriage_return double_quote_stepDouble_quote single_quote_stepSingle_quote backslash_ stepBackslashtrue_stepTruefalse_ stepFalsenot_stepNotimplies_ stepImpliesand_stepAndor_stepOr exclusive_or_xor_stepExclusive_or booleans_ stepBooleansints_integers_from_from_integers_up_to_up_to_natural_predecessor_ nat_pred_natural_successor_ nat_succ_int_add_ integer_add_integer_multiply_integer_divide_integer_subtract_integer_power_integer_power_op integer_list_integer_modulo_int_mod_ integer_mod_integer_absolute_value_decimal_natural_decimal_octal_natural_octal_binary_natural_binary_hexadecimal_natural_ hexadecimal_is_less_integer_is_less_is_less_or_equal_integer_is_less_or_equal_ is_greater_integer_is_greater_is_greater_or_equal_integer_is_greater_or_equal_ieee_float_truncatestepIEEE_Float_TruncatestepIEEE_Float_AddstepIEEE_Float_MultiplystepIEEE_Float_SubtractstepIEEE_Float_NegatestepIEEE_Float_DividestepIEEE_Float_Powersigned_bits_maximumstepSigned_Bits_Maximumsigned_bits_minimumstepSigned_Bits_Minimumieee_float_acosstepIEEE_Float_Acosieee_float_asinstepIEEE_Float_Asinieee_float_atanstepIEEE_Float_Atanieee_float_atan2stepIEEE_Float_Atan2ieee_float_cosstepIEEE_Float_Cosieee_float_coshstepIEEE_Float_Coshieee_float_expstepIEEE_Float_Expieee_float_logstepIEEE_Float_Logieee_float_log10stepIEEE_Float_Log10ieee_float_sinstepIEEE_Float_Sinieee_float_sinhstepIEEE_Float_Sinhieee_float_sqrtstepIEEE_Float_Sqrtieee_float_tanstepIEEE_Float_Tanieee_float_tanhstepIEEE_Float_Tanhieee_float_ceilingstepIEEE_Float_Ceilingieee_float_floorstepIEEE_Float_Floorieee_float_absolute_valuestepIEEE_Float_Absolute_ValuestepIEEE_Float_RemainderstepIEEE_Float_Is_LessstepIEEE_Float_Is_GreaterstepIEEE_Float_Is_Less_Or_Equal"stepIEEE_Float_Is_Greater_Or_Equal ieee_float_opieee_float_addieee_float_add_opieee_float_multiply_ieee_float_multiplyieee_float_multiply_opieee_float_divideieee_float_divide_opieee_float_remainderieee_float_remainder_opieee_float_negateieee_float_negate_opieee_float_subtractieee_float_subtract_opieee_float_float_powerieee_float_power_opieee_float_is_lessieee_float_is_less_opieee_float_is_greaterieee_float_is_greater_opieee_float_is_less_or_equalieee_float_is_less_or_equal_opieee_float_is_greater_or_equal!ieee_float_is_greater_or_equal_opbit_vector_not_bit_vector_and_bit_vector_or_bit_vector_xor_bit_vector_shift_left_bit_vector_logical_shift_right_$bit_vector_arithmetical_shift_right_integer_to_bit_vector_bit_vector_to_integer_bit_vector_to_natural_atoms_vector_ stepVectorvector_elements_stepVector_elements stepVectorsvariant_ stepVariant variant_id_stepVariant_idvariant_value_stepVariant_value variants_ stepVariantstuple_ stepTupletuple_elements_stepTuple_elements tuple_zip_ stepTuple_ziptuples_ stepTuplestree_stepTreetree_root_value_stepTree_root_valuetree_branch_sequence_stepTree_branch_sequencesingle_branching_sequence_stepSingle_branching_sequenceforest_root_value_sequence_stepForest_root_value_sequenceforest_branch_sequence_stepForest_branch_sequenceforest_value_sequence_stepForest_value_sequencetrees_ stepTreesstrings_ stepStrings stepStringstring_append_stepString_appendsets_ set_elements_ set_size_set_intersect_set_difference_ some_element_ is_subset_ is_in_set_ set_unite_ set_insert_element_not_in_ set_empty_length_ stepLengthis_in_ stepIs_inindex_ stepIndexfirst_ stepFirstsecond_ stepSecondthird_ stepThirdfirst_n_ stepFirst_n drop_first_n_stepDrop_first_nreverse_ stepReversen_of_stepN_of intersperse_stepIntersperse reference_ stepReference pointer_null_stepPointer_null dereference_stepDereference references_stepReferences pointers_ stepPointersrecord_ stepRecord record_map_stepRecord_maprecord_select_stepRecord_selectrecords_ stepRecordsobject_ stepObjectobject_identity_stepObject_identityobject_class_name_stepObject_class_nameobject_feature_map_stepObject_feature_mapobject_subobject_sequence_stepObject_subobject_sequence object_tree_stepObject_tree&object_single_inheritance_feature_map_)stepObject_single_inheritance_feature_mapobjects_ stepObjects multisets_ multiset_multiset_elements_multiset_occurrences_multiset_insert_multiset_delete_is_submultiset_map_maps_ map_empty_ is_map_empty_ is_in_domain_ map_insert_ map_delete_ map_unite_lookup_ map_lookup_ map_override_domain_dom_ map_domain_ map_elements_list_stepListlist_elements_stepList_elements list_nil_nil_ stepList_nil list_cons_cons_ stepList_cons list_head_head_ stepList_head list_tail_tail_ stepList_tail list_length_stepList_length list_append_stepList_appendlists_ stepLists is_cyclic_topological_sort_directed_graphs_stepDirected_graphsdatatype_value_adt_val_evalADT lazy_adt_val_ evalLazyADTadt_construct_ adtConstructadt_type_construct_adtTypeConstructadt_constructor_adtConstructor adt_fields_ adtFieldsdatatype_value_id_stepDatatype_value_iddatatype_value_elements_stepDatatype_value_elementsclass_ stepClassclass_instantiator_stepClass_instantiatorclass_feature_map_stepClass_feature_mapclass_superclass_name_sequence_"stepClass_superclass_name_sequenceclass_name_tree_stepClass_name_treeis_subclass_name_stepIs_subclass_name*class_name_single_inheritance_feature_map_-stepClass_name_single_inheritance_feature_mapclasses_ stepClassesbits_stepBits bit_vector_stepBit_vectorbytes_octets_ stepBytesunsigned_bit_vector_maximum_stepUnsigned_bit_vector_maximumsigned_bit_vector_maximum_stepSigned_bit_vector_maximumsigned_bit_vector_minimum_stepSigned_bit_vector_minimumis_in_signed_bit_vector_stepIs_in_signed_bit_vectoris_in_unsigned_bit_vector_stepIs_in_unsigned_bit_vector bit_vectors_stepBit_vectorstags_stepTags ast_value_ stepAst_value ast_term_ stepAst_termasts_stepAststhunk_ stepThunkforce_ stepForcethunks_ stepThunkspattern_ stepPattern pattern_any_stepPattern_any pattern_bind_stepPattern_bind pattern_type_stepPattern_type pattern_else_stepPattern_elsepattern_unite_stepPattern_unitematch_ stepMatchmatch_loosely_stepMatch_loosely case_match_stepCase_matchcase_match_loosely_stepCase_match_looselycase_variant_value_stepCase_variant_value patterns_ stepPatterns abstraction_stepAbstractionclosure_ stepClosureenact_ stepEnact abstractions_stepAbstractions function_ stepFunctionapply_ stepApplysupply_ stepSupplycompose_ stepComposeuncurry_ stepUncurrycurry_ stepCurrypartial_apply_stepPartial_apply functions_ stepFunctions locations_locs_ stepLocationsstores_ stepStores store_clear_stepStore_clearinitialise_storing_ init_storing_stepInitialise_storing variable_var_ stepVariableallocate_variable_alloc_stepAllocate_variablerecycle_variables_recycle_stepRecycle_variablesinitialise_variable_init_stepInitialise_variableallocate_initialised_variable_ alloc_init_!stepAllocate_initialised_variableassign_ stepAssign assigned_ stepAssignedcurrent_value_stepCurrent_value un_assign_ stepUn_assignstructural_assign_stepStructural_assignstructural_assigned_stepStructural_assigned variables_ stepVariableslink_stepLinkinitialise_linking_stepInitialise_linking fresh_link_stepFresh_linkfresh_initialised_link_fresh_init_link_stepFresh_initialised_link set_link_ stepSet_link follow_link_stepFollow_linkfollow_if_link_stepFollow_if_linklinks_ stepLinksprint_ stepPrintread_stepReadinitialise_giving_stepInitialise_givinggive_stepGivegiven_ stepGiven no_given_ stepNo_givenleft_to_right_map_stepLeft_to_right_mapinterleave_map_stepInterleave_mapleft_to_right_repeat_stepLeft_to_right_repeatinterleave_repeat_stepInterleave_repeatleft_to_right_filter_stepLeft_to_right_filterinterleave_filter_stepInterleave_filter fold_left_ stepFold_left fold_right_stepFold_rightinitialise_generating_stepInitialise_generating fresh_atom_stepFresh_atomuse_atom_not_in_stepUse_atom_not_inleft_to_right_l_to_r_stepLeft_to_rightright_to_left_r_to_l_stepRight_to_left sequential_seq_stepSequentialeffect_ stepEffectchoice_ stepChoice if_true_else_if_else_stepIf_true_else while_true_while_stepWhile_truedo_while_true_ do_while_stepDo_while_true interleave_stepInterleavesignal_ stepSignalyield_ stepYieldyield_on_value_stepYield_on_valueyield_on_abrupt_stepYield_on_abrupt yielding_ stepYielding environments_envs_stepEnvironmentsidentifier_tagged_ id_tagged_stepIdentifier_taggedfresh_identifier_stepFresh_identifierinitialise_binding_stepInitialise_binding bind_value_bind_stepBind_valueunbind_ stepUnbindbound_directly_stepBound_directly bound_value_bound_stepBound_valueclosed_ stepClosedscope_ stepScope accumulate_stepAccumulate collateral_stepCollateralbind_recursively_stepBind_recursively recursive_ stepRecursive re_close_ stepRe_closebind_to_forward_links_stepBind_to_forward_linksset_forward_links_stepSet_forward_links identifiers_stepIdentifiersthrown_ stepThrownfinalise_throwing_stepFinalise_throwingthrow_ stepThrowhandle_thrown_stepHandle_thrownhandle_recursively_stepHandle_recursivelycatch_else_throw_stepCatch_else_throw throwing_ stepThrowingstuck_ stepStuck returned_ stepReturnedfinalise_returning_stepFinalise_returningreturn_ stepReturnhandle_return_stepHandle_return returning_ stepReturningfailed_ stepFailedfinalise_failing_stepFinalise_failingfail_stepFailelse_stepElse else_choice_stepElse_choice check_true_check_stepCheck_truechecked_ stepCheckedfailing_ stepFailing continuation_stepContinuationhole_stepHoleresume_continuation_stepResume_continuationcontrol_ stepControldelimit_current_continuation_ delimit_cc_ stepDelimit_current_continuationcontinuations_stepContinuations continued_ stepContinuedfinalise_continuing_stepFinalise_continuing continue_ stepContinuehandle_continue_stepHandle_continue continuing_stepContinuingbroken_ stepBrokenfinalise_breaking_stepFinalise_breakingbreak_ stepBreak handle_break_stepHandle_break breaking_ stepBreakingfinalise_abrupting_stepFinalise_abruptingabrupt_ stepAbrupthandle_abrupt_stepHandle_abruptfinally_ stepFinallyfunconsentitiestypescomputation_types_stepComputation_TypesnoEntityDefaultsmkMainmkMainWithLibrarymkMainWithLibraryEntitiesmkMainWithLibraryTypesmkMainWithLibraryEntitiesTypesmkFullyFreshInterpretermkFreshInterpreterrunWithExtensionsrunWithExtensionsNoCorerunWithExtensionsNoNothingrun evalOperation execRewritesbaseGHC.BaseString empty_map_ empty_set_Funcons.Operations libAppWithlibAppFuncons.Operations.Eval applyEvaleval EvalResult EvalResultsErrorSuccessFuncons.Operations.ADTs adt_fieldsadt_constructoradtsadts_Funcons.Operations.Atomsatomatoms next_atom next_atom_ atom_seed atom_seed_Funcons.Operations.Bits bit_nat_op binary_bit_op args_to_bools apply_to_vecinteger_to_bit_vectorbit_vector_to_naturalbit_vector_to_integer#bit_vector_arithmetical_shift_rightbit_vector_logical_shift_rightbit_vector_shift_leftbit_vector_xor bit_vector_orbit_vector_andbit_vector_notFuncons.Operations.Graphsis_emptycyclicscheduledeleteentriestoGraphtopological_sort is_cyclicGraphFuncons.Operations.Integersis_greater_or_equal is_greateris_less_or_equalis_lesshexadecimal_natural octal_naturalbinary_naturaldecimal_naturalinteger_absolute_value integer_listnatural_successornatural_predecessor integer_powerinteger_divideinteger_subtract is_integer is_integer_integers_up_to integers_fromintegersstepModFuncons.Operations.ListstailOpheadOp list_concat list_concat_ list_appendconsis_nilis_nil_nillist_singletonlist_singleton_listsFuncons.Operations.Maps map_elementsallDomainPairstoMap map_unitedomain is_in_domain map_delete map_lookup map_insert is_map_empty map_singletonmap_singleton_ map_emptyFuncons.Operations.Multisetsis_submultisetmultiset_deletemultiset_insertmultiset_occurrencesmultiset_elementsFuncons.Operations.Setselement_not_in set_insert is_subset some_elementset_differenceset_size set_elements is_in_set set_emptyFuncons.Operations.Tuples tupleTailOp tupleHeadOp tuple_tail_ tuple_head_ tuple_index tuple_index_ tuple_prepend empty_tupletuple_prepend_ empty_tuple_tuple_is_emptytuple_is_empty_Funcons.Operations.Strings mk_string stepTo_String to_string is_string is_string_Funcons.Operations.Types isInTupleTypeisInType type_member type_member_tyOf value_type value_type_is_valuevaluesnulltype empty_type value_types ground_valuesdatatype_valuesFuncons.Operations.Booleansis_equalfrombooltoboolFuncons.Operations.Characters unicode_point numBMPCodesnumUnicodeCodesunicode_characterascii_characterbmp_charactersbmp_characters_iso_latin_charactersiso_latin_characters_ascii_characters bmp_points bmp_points_unicode_pointsunicode_characters charactersFuncons.Operations.FloatsdoubleFromIEEEFormat isIEEEFormatieee_float_add_ieee_float_truncate_"Funcons.Operations.NonGroundValuesnon_grounded_valuesnon_grounded_values_ non_grounded non_grounded_Funcons.Operations.Optionalsnonenone_somesome_some__ optionals optionals_none__toOptFuncons.Operations.LibrarieslibUniteLibraryFuncons.Operations.Expr applyExprarityErr ternaryOpbinaryOpunaryOp nullaryOpopNamevNaryOp vTernaryOp vBinaryOpvUnaryOp vNullaryOpchoiceOPResultNondeterministicNormalProjErrDomErrArityErr NullaryOpUnaryOpBinaryOp TernaryOpNaryOp NullaryVOpUnaryVOp BinaryVOp TernaryVOpNaryVOpOpExpr RewritesTo InvalidOpValExprTermExpr NullaryExpr UnaryExpr BinaryExprNaryExpr TernaryExpr showArgs_ppOpppTypesppComputationTypesppValues null_value__isGround=/====downcast_unicode_charactersmk_unicode_characters mk_naturals mk_integerscastTypestructTMcomparestructVMcomparestructCTMcomparestructVcompare traverseCTM traverseTM traverseT traverseVM traverseVvmapvectorsmaps multisetssetsmulti_multivectorsetlisttuple unicode_cons ascii_consMVarValSeqVAnyVectorMultiset IEEE_Float_64 IEEE_Float_32ComputationTypeAtomADTValSetMapRationalNatFloatInt ValueMaps ValueSets ValueVectorsComputesFromTypeType ComputesTypeUnionUnicodeCharacters RationalsNullTypeNaturals IntersectionIntegers IEEEFloats EmptyType Complement Characters IntegersUpTo IntegersFromAtoms BMPCharactersISOLatinCharactersAsciiCharacters AnnotatedTypeADTsADT HasValuesprojectinjectHasComputationTypes projectCTinjectCTHasTypesprojectTinjectT IEEEFormatsBinary32Binary64TTParamVectorsNameMetaVarbinary32binary64adtval tuple_val__ tuple_val_ nullaryTypes unaryTypes binaryTypesboundedIntegerTypes floatTypessort_ comp_type_vectypeVallistvalsetvalsetval_mapvalmapval_ fromBinding downcastSortrecursiveFunconValueallEqual allUnEqualisNullhasStep isDefinedValisEnvisSetisSortisSort_ isCharacter_ nulltype_ showSorts ppValuesSeq ppFunconsSeq ppFunconsppTermsshowIException mkRuleErr mkRulesErr failsRuleSimIO InteractivefexecfprintfreadrunSimIOghc-prim GHC.TypesIOStepResValTermCompTermpremiseStepApprunMSOS MSOSStateestateinp_es mut_entities MSOSWriterewriter ctrl_entities out_entities MSOSReaderereader inh_entitiesdctrl_entities def_fread runRewriteRewriteWriterrcounters RewriteState RewriteReader funconlibrun_optsty_env global_fct local_fcttraceLibemptyRewriteState liftRewrite eval_catchrewrite_rethrow rewrite_throwevalctxt2exceptionctxt2exceptionemptyMSOSState msos_throwgiveINHgiveCTRLemptyINH emptyDCTRL singleCTRLreadOutscount_delegation ppCounters counterKeysdisplayCounters exceptioninternalsidecond buildStep optRefocus rewrittens evalFunconsrewritesToTyperewritesToValuerewritesToValuesrewriteToValErrrewriteFunconsWcountrewriteFunconsrewriteStrictSequenceevalStrictSequence evalSequence stepTrans toStepResLevelledTypeTerm TypesTerm ValueTerm ValuesTerm FunconTerm FunconsTerm envLookup envInsertvsLevelvLevelfsLevelfLevelsubstitute_signal substitutesubsAndRewritesInEnvsubsAndRewritesToValuesubsAndRewritesToValueInEnvsubsAndRewritesToValuessubsAndRewritesToValuesInEnvstrict_vsMatchisInMaybeTupleType SeqVarInfoMatcher singleMatcher seqMatchermatchingordered_subsequences v2tPattern v2fPatternsubstitute_patt_signalstrict_fsMatchfsMatchStrictnessfMatchlifted_fMaybeMatch fMaybeMatchlifted_vMaybeMatch vMaybeMatch lifted_vMatchvMatchtsMatchstrict_tsMatchtMatchadtMatch fpSeqVarInfo vpSeqVarInfo tpSeqVarInfomatchTypeParams alwaysAcceptrewritesToAnnotatedTypeisInMaybeTermTypePreserveisInMaybeTypeTypePreserveisInMaybeTermType isInTuple paramFromTypeisInUnicodeType typeEnvLookup consumeInput getControlsetEntityDefaults