!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~K None=?P]p  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-toolsOA datatype has `zero or more' type parameters and `zero or more' alternatives. funcons-toolsDA 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-tools@The 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-toolsCInternal 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, Shandle_thrown_ :: [Funcons] -> Funcons handle_thrown_ = applyFuncon "handle-thrown"or alternatively, fhandle_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-toolsOCreates a tuple of funcon terms. tuple_ :: [Funcons] -> Funcons tuple_ = FTupleQ funcons-tools Returns the unicodeL 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.#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<=> !"#$%&'(?@ABCDEFGHIJKLMN)*+O,P-./012Q3R45678S9TUVWX:Y;Z<=[\>]^?_`abcdNonef?ejihgfklmnopqrstuvwxyz{|klmnopqrstuvejihgfwxyz{| Noneg=lmlmNone>Pg:}~:}~ NonemL 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 AB@CD NonemEFGH None=?PnVIJKLMNNone=?PSX_q* 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:Cinherited 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.Jcontrol 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 O monad. See  Funcons.Tools.xFor 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 u to ensure that side-effects (access or modification of semantic entities) can not occur during syntactic rewrites.P funcons-toolspA 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.Q funcons-toolsFully rewritten to a value.R funcons-toolsGFully rewritten to a term and the step required to continue evaluation. funcons-toolsCDenotes 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-toolsEType synonym for the evaluation function of fully non-strict funcons. funcons-toolsZType 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-toolsAA 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  unsuccessfulM 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.ZWhen no rules are successfully executed to completetion a 'no rule exception' is thrown. funcons-tools~Yields an error signaling that no rule is applicable. The funcon term argument may be used to provide a useful error message. funcons-toolsYYields an error signaling that a sort error was encountered. These errors render a rule  inapplicableB and a next rule is attempted when a backtracking procedure like U 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  inapplicableB and a next rule is attempted when a backtracking procedure like U 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-toolsaYield 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-toolsrYield 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-toolsvYield 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: SstepScope :: 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']) S 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. =@EIJMLKTUVWXYZ[\]^_`abcdefghijklmnopqrsPQRtuvwxyz{|}~SNone_ߪ 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-toolsOThe empty substitution environment. Bindings are inserted by pattern-matching. funcons-tools Variant of  that applies substitution. funcons-tools Variant of  that applies substitution. funcons-toolscApply as many rewrites as possible to the term bound to the given variable in the meta-environmentNone1P_Q 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-toolsaMatching values with value patterns patterns. If the list of patterns is a singleton list, then F 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 U environment, throwing possible exceptions, and possibly extending the environment. funcons-toolsjTo 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.H      !None" funcons-tools"Used for replacing meta-variables T 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_+a+ 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.1 funcons-tools A list of +9s is used to declare (and possibly initialise) entities.2 funcons-tools%Get the value of some mutable entity.3 funcons-tools Variant of 2 that performs pattern-matching.4 funcons-tools%Set the value of some mutable entity.5 funcons-tools Variant of 4 that applies substitution. funcons-tools|Consume a single value from the input stream. | Throws an 'unsufficient input' exception, if not enough input is available.6 funcons-tools Provides extraJ values to a certain input entity, available to be consumed by the given  computation argument.7 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.8 funcons-tools Variant of  that matches the given % to the consumed value in the given . 9 funcons-tools Variant of 6 that performs substitution.: funcons-tools Variant of 7 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-toolsASet the value of an downwards control entity. The new value is only set for ' computation given as a third argument. funcons-tools(Get the value of an down control entity.@ funcons-tools Version of  that applies pattern-matching.A funcons-tools%Get the value of an inherited entity.B funcons-tools Version of A that applies pattern-matching.C funcons-tools9Set the value of an inherited entity. The new value is only set for ' computation given as a third argument.D funcons-tools Variant of C that performs substitution.E funcons-tools*Add new values to a certain output entity.F funcons-tools Variant of E that applies substitution.G funcons-toolsMRead the values of a certain output entity. The output is obtained from the ( computation given as a second argument.H funcons-tools Variant of G that performs pattern-matching.+,-./0123456789:;<=>?@ABCDEFGHNone/I 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 J funcons-tools0A funcon library with funcons for builtin types.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU/0123456789:;< =KLMN>OI?ABHIJFG@KLMDEC^]_NOQPTRSUSWVXY[\UZTRQJAC24EG=;67 !"#$%&'()*+,-.PDB53FH<>89:?@      !(%&'"#$)*1+,-./0 `cbdaNone_>V funcons-toolsxThis function implements the ==CT=> relation. Compiling programs to executable funcons terms, removing occurrences of  `meta-up`,  `meta-down` and  `meta-let` and  `meta-bound`.W funcons-tools`This function implements the ==UL=> relation. Translating a funcon into its meta-representationX funcons-toolsuThis function implements the ==DL=> relation. Translating a meta-representation of a program into the actual programVWXYZ[\]^_`abcdefghijklVWXYZ[\]^_`abcdefghijklNone?mnopqrstuvwxyz{None_@9|}~None@None@NoneANoneANoneBxNoneC+NoneCNoneD'NoneDL      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNNoneFK OPQRSTUVWXNoneFYZ NoneG [\]^_`!NoneGd abcdefgh"NoneG ijklmnop#NoneH:qrstuvwxyz{|}~$NoneH %NoneI(&NoneI'NoneJB (NoneJ   )NoneK    *NoneK+NoneN  funcons-toolsqComputes the union over a sequence of maps. If the maps do not have disjoint domains a failure signal is raised.,NoneN-NoneO..NoneOy/None_O0NonePK    1NoneP 2NoneQ1  !"#$%&'()*+,-./3NoneQ !"#012345674NoneR3 $%&89:;<=5NoneR'()>?@ABCDEFGHIJKLMNOPQRSTU6NoneSA *+,VWXYZ[\]7NoneS-./^_`abcdefghijklm8NoneT7*012nopqrstuvwxyz{|}~9NoneU345:NoneU678;NoneV9:;<NoneV=NoneV<=>>NoneWY%?@A?NoneX,+BCD     @NoneYANoneYjEFG !"#$%BNoneYHIJ&'CNoneZ@ KLM()*+,-./01DNoneZNOP23456789:;<=>?@ABENone[BQRSCDEFGHIJKLMNOFNone[ TUVPQRSTUVWXYGNone\4 WXYZ[\]^_`abcHNone\ Z[\defghijkINone] 6mnopqrstuvwxyz{[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnJNonef%]oKNonefl^pqNonef|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZopqrroOPQRSTUVWX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNYZ|}~pqNone s funcons-tools(The empty collection of entity defaults.t funcons-tools Creates a mainU function for the default interpreter (no extension). The executable made from this main? function receives command line argumenst as explained above ( Funcons.Tools). u funcons-tools Creates a maina function for the interpreter obtained by extending the default library with the funcons in the  argument.v funcons-tools Creates a mainc 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 1 argument.w funcons-tools Creates a mainb 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.x funcons-tools Creates a mainX function for the interpreter obtained by extending the main interpreter with funcons, 1 and a . y funcons-tools Creates a main7 function for the interpreter aware of only the given , 1 and . z funcons-tools Creates a main7 function for the interpreter aware of only the given , 1 and *, and the built-in types and operations. { funcons-toolsSame as ~a, except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /G, entities or datatypes specific to the object language. Includes the LM funcons.| funcons-toolsSame as ~a, except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /O, entities or datatypes specific to the object language. Does not include the LM funcons.} funcons-toolsSame as ~a, except receiving additional interpreter extensions as arguments. Useful when a translation to /- has been implemented in Haskell as well as /O, entities or datatypes specific to the object language. Does not include the LM funcons.~ funcons-toolsaCreates 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+,-./01stuvwxyz{|}~%tuvwxyz~{|} acbd1+,-./0sNone?@mnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr?@lmnnopqrstuvwxyz{|}~     defghijk()*+,-./01CDEFGHIJKLMNO !"#$%23456789:;<=>?@AB&'Z[\]^_`abcPQRSTUVWXY01234567[\]^_`abcdefghqrstuvwxyz{|}~     ijklmnop !"#$%&'()*+,-./mnopqrstuvwxyz{89:;<=>?@ABCDEFGHIJKLMNOPQRSTU^_`abcdefghijklmVWXYZ[\]|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZopqrNone+_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                                   !"#$%&'(&'%$#)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !!!!!!!!""""""""################$$$$$$%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&''''''''''(((((((()))))))))))))) ) ) * * *****++++++++++++++ +!,",#,$,%,&,',(,),*,+,,,-,.,/,0,1,2,3,4,5,6,7-8-9.:.;/</=/>/?/@/A/B/C/D/E/F/G/H0I0J0K0L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z1[1\2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o3p3q3r3s3t3u3v3w4x4y4z4{4|4}5~5555555555555555555555566666666777777777777777788888888888888888888888888888888888888899999999999999999::::;;;;;;;;;;;;;;;;;;;;;;;;<<<====>> > > > > >>>>>>>>>>>>>>>>>>> >!>">#>$>%>&>'>(>)?*?+?,?-?.?/?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@UAVAWAXAYAZA[ARASA\A]A^A_A`AaBbBcCdCeCfCgChCiCjCTCkClDmDnDoDpDqDrDsDUDtDuDvDwDxDyDzD{D|E}E~EEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHHHIIIJKK "   NNNNNNNNNNGNNENCNANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN{NNHNNNNNNNNN9NN8NNNFNNDNNBNN@NN>NN:N N<N N8N N7N N3N N+N*NN)N(NN1NN/NN0N.N-NNNN&NN$NNN4N6NNN0N-NNNN4NN*NN N!N'N"N#N$N6N%&N%!N%'N%(N%)N%N%N%*N%N%+N%N%,N%N%-N%N%.N%N%/N%N%0N%1N%2N%N%N34N3N35N3N36N3N37N3N38N3N3 N3 N9:N9N9;N9N9N9<N9N9=N9N9>N9N9N9?N9N9@N9N9AN9N9BN9N9NCDNCENCFNCGNCHNCINCJNCKNCLNCMNCNNCONCNPQNPRNPSNPNPTNPUNVWNVXNVYNVZNV[NV\NV]NV^NVNV_NVNV`NVaNVNVbNVNVcNVNVdNVNefNeNeNeNe!NegNehNijNikNilNimNnoNnpNnqNnrNnsNntNnuNnvNnwNxyNxzN{|N{}N{~N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{N{NONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONONO                                          ! " # $ % & ' ( ) * + , - ./01234567789:;;<=>??@ABCDEEFGGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~XW   !!!"""###$$$%&&&'''((()))*+,,,-.../000111222333444555666777888999:::;;;===>>>???AAABBBCCCDDDEEEFFFGGGHHHJK,funcons-tools-0.2.0.9-6WMCyUoqNRW6aiT9bnNHdh 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.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.Values.Primitive.StringsBuiltin&Funcons.Core.Computations.TypesBuiltinFunconsCore-funcons-values-0.1.0.7-8ACvZNceIwX95fUZr3EMdEFuncons.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_parse fvalue_parse fvalue_parse_parseparser_a allParsesfct_lexerSettingslexer 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_ 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_stepIdentifiershandle_thrown_stepHandle_thrownstepHandle_returnstepElsethrown_ stepThrownfinalise_throwing_stepFinalise_throwingthrow_ stepThrowhandle_recursively_stepHandle_recursivelycatch_else_throw_stepCatch_else_throw throwing_ stepThrowingstuck_ stepStuck returned_ stepReturnedfinalise_returning_stepFinalise_returningreturn_ stepReturnhandle_return_ returning_ stepReturningfailed_ stepFailedfinalise_failing_stepFinalise_failingfail_stepFailelse_ 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_ stepFinallyfunconsentitiestypes to_string_computation_types_stepComputation_TypesnoEntityDefaultsmkMainmkMainWithLibrarymkMainWithLibraryEntitiesmkMainWithLibraryTypesmkMainWithLibraryEntitiesTypesmkFullyFreshInterpretermkFreshInterpreterrunWithExtensionsrunWithExtensionsNoCorerunWithExtensionsNoNothingrun evalOperation execRewritesbaseGHC.BaseString empty_map_ empty_set_Funcons.Operations libAppWithlibAppFuncons.Operations.Eval applyEvaleval EvalResultErrorSuccessFuncons.Operations.ADTs adt_fieldsadt_constructoradtsadts_Funcons.Operations.Atomsatomatoms next_atom next_atom_ atom_seed atom_seed_Funcons.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.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.FloatsdoubleFromIEEEFormat isIEEEFormatieee_float_add_ieee_float_truncate_Funcons.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_equalfrombooltobool"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 vNullaryOpOPResultDomErrArityErrProjErrNormal NullaryOpUnaryOpBinaryOp TernaryOpNaryOp NullaryVOpUnaryVOp BinaryVOp TernaryVOpNaryVOpOpExprValExprTermExpr InvalidOp RewritesToNaryExpr TernaryExpr BinaryExpr UnaryExpr NullaryExpr showArgs_ppOpppTypesppComputationTypesppValues null_value__isGround=/====downcast_unicode_charactersmk_unicode_characters mk_naturals mk_integerscastTypestructTMcomparestructVMcomparestructCTMcomparestructVcompare traverseCTM traverseTM traverseT traverseVM traverseVvmapvectorsmaps multisetssetsmulti_multivectorlisttuple unicode_cons ascii_consMVarFloatIntNatRationalMapSetADTValAtomComputationType IEEE_Float_32 IEEE_Float_64MultisetVectorVAnyValSeq ValueMaps ValueSets ValueVectorsType ComputesTypeComputesFromTypeADTsADT AnnotatedTypeAsciiCharactersISOLatinCharacters BMPCharactersAtoms IntegersFrom IntegersUpTo Characters Complement EmptyType IEEEFloatsIntegers IntersectionNaturalsNullType RationalsUnicodeCharactersUnion 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 withControl getControlsetEntityDefaults