kfa      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                   ! ! ! ! ! ! ! ! " # $ % % % % % % % % % % % % % % % & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ( ( ( ( ( ( ( ( ( ( ( ) ) * !* "* #* $+ %+ &+ '+ (+ )+ *+ ++ ,+ -+ .+ /+ 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/ {/ |/ }/ ~/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 !2 "2 #2 $2 %2 &2 '3 (3 )3 *3 +3 ,3 -3 .3 /3 03 13 23 33 43 53 63 73 83 93 :4 ;4 <4 =4 >4 ?4 @4 A4 B4 C5 D5 E5 F5 G5 H5 I6 J6 K6 L6 M7 N7 O7 P7 Q7 R7 S7 T7 U7 V7 W7 X7 Y7 Z7 [7 \7 ]7 ^7 _7 `7 a7 b7 c7 d7 e7 f7 g7 h8 i8 j8 k8 l9 m9 n: o; p; q; r; s; t; u; v; w; x< y< z< {< |< }< ~< < < < < < < < < < < = > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C !C "C #C $C %C &C 'C (C )C *C +C ,C -C .C /C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C :C ;C <C =C >C ?C @C AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC [C \C ]C ^C _C `C aC bC cC dC eC fC gC hC iC jC kC lC mC nD oD pD qD rD sD tD uD vD wD xE yE zE {E |E }E ~E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G G GGGGGGGGGG G G G G HIIIIIJKKKKKLLLLLLL L!L"L#L$M%N&O'O(P)Q*R+R,R-R.R/R0S1S2S3S4S5S6S7S8S9S:S;S<S=S>S?S@SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSlSmTnToTpTqTrTsTtTuTvTwTxTyTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUVVVVVVVVWWWWWWWWWWXXXXYYYYZZZ[[[[[[[[[[[[[[\\\]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ] ] ] ] ]]^______````````aa a!a"a#a$a%a&a'a(a)a*a+a,a-a.a/a0a1a2a3a4a5a6a7b8b9b:c;c<c=c>c?c@cAdBdCdDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZf[f\f]f^f_f`flgNone 2349:;<=?aaa*Utilities for interacting with the system.License : BSD3The Idris Community.None 2349:;<=?@Create a temp file with the extensiom ext (in the format ".xxx")IRead a source file, same as readFile but make sure the encoding is utf-8.JWrite a source file, same as writeFile except the encoding is set to utf-8#Write a utf-8 source file from Text b    b #Utilities for getting screen width.License : BSD3The Idris Community.None 2349:;<=?    hUtilities for Pretty Printing.License : BSD3The Idris Community.None 2349:;<=?cdefghi^jklmnopqrstuvwxyz{|}~cdefgcdefghiiUtilities for Network IO.License : BSD3The Idris Community.None 2349:;<=?jPlatform-specific dynamic linking support. Add new platforms to this file through conditional compilation.License : BSD3The Idris Community.None2349:;<=?AT     jNone 2349:;<=?kNone 2349:;<=?  -Utilities to aid with the REPL's HELP system.License : BSD3The Idris Community.None 2349:;<=?The command takes an expressionThe command takes a nameThe command takes a fileThe command takes a module name)The command takes a list of package namesThe command takes a number"The command takes a namespace name The command takes an option! The command takes a metavariable")The command is the colour-setting command#No completion (yet!?)$ do not use%The width of the console&5An Idris declaration, as might be contained in a file'$Zero or more of one kind of argument(#Zero or one of one kind of argument)(One kind of argument followed by another*6Use these for completion, but don't show them in :help !"#$%&'()*+# !"$%&'()* !"#$%&'()* !"#$%&'()*+The core language of Idris, TT.License : BSD3The Idris Community.None023459:;<=?Mn&an environment with de Bruijn indices  normalised, so that they all refer to this environment7Data declaration options8'Set if the the data-type is coinductive96Set if an eliminator should be generated for data type:8Set if a case function should be generated for data typeFTerms in the core language. The type parameter is the type of identifiers used for bindings and explicit named references; usually we use TT .G#named references with type (P for  ParameterC, motivated by McKinna and Pollack's Pure Type Systems Formalized)H%a resolved de Bruijn-indexed variableI a bindingJfunction, function type, argKconstantLTargument projection; runtime only (-1) is a special case for 'subtract one from BI'Man erased termN"special case for totality checkingOFor building case trees when coverage checkimg only. Marks a term as being inferred by the machine, rather than given by the programmerPthe type of types at some levelQ.Uniqueness type universe (disjoint from TType)YData constructorZType constructorcUniverse constraintsdStrictly less thaneLess than or equal tof*Universe expressions for universe checkingg3universe variable, with source file to disambiguatehexplicit universe leveliAll binding forms are represented in a uniform fashion. This type only represents the types of bindings (and their values, if any); the attached identifiers are part of the I constructor for the F type.jA function bindingk;A binding that occurs in a function type expression, e.g. (x:Int) -> ... The t flag says whether it was a scoped implicit (i.e. forall bound) in the high level Idris, but otherwise has no relevance in TT.lA binding that occurs in a let expressionmNLet is an intermediate product in the evaluator that's used for temporarily naming locals during reduction. It won't occur outside the evaluator.nrA hole in a term under construction in the elaborator. If this is not filled during elaboration, it is an error.oA saved TT hole that will later be converted to a top-level Idris metavariable applied to all elements of its local environment.pA provided value for a hole. It will later be substituted - the guess is to keep it computationally inert while working on other things if necessary.qUA pattern variable (these are bound around terms that make up pattern-match clauses)rThe type of a pattern bindings"type annotation for bound variablevvalue for bound variable}Contexts allow us to map names to things. A root name maps to a collection of things in different namespaces with that name.xNames are hierarchies of strings, describing scope (so no danger of duplicate names, but need to be careful on lookup).User-provided nameRoot, namespacesMachine chosen namesDecorated function names>Reference to IBC file symbol table (used during serialisation)eIdris errors. Used as exceptions in the compiler, but reported to users if they reach the top level.8Location, bad universe, old domain, new domain, suspectsNUser-specified message, proof term, goals with context (first goal is focused)8The error occurred during a top-level elaboration scriptUsed for error reflection&Output annotations for pretty-printingB^ The name, classification, docs overview, and pretty-printed type%^ The name and whether it is implicittype, doc overviewname, doc overviewA link to this URL pprint bound vars, original term*more general, isomorphic, or more specificA namespace (e.g. on an import line or in a namespace declaration). Stored starting at the root, with the hierarchy fully resolved. If a file path is present, then the namespace represents a module imported from that file.Text formatting output :Output annotation for pretty-printed name - decides colourFC with equality<Source location. These are typically produced by the parser Tl%Locations for machine-generated termsLocations with file onlyFilename:Line and column numbers for the start of the location span8Line and column numbers for the end of the location span/Give a notion of filename associated with an FC5Give a notion of start location associated with an FC3Give a notion of end location associated with an FC+Get the largest span containing the two FCsJDetermine whether the first argument is completely contained in the secondEmpty source locationSource location with file only1Return True if the argument 3 should be interpreted as the name of a interface.5xLook up a name in the context, given an optional namespace. The name (n) may itself have a (partial) namespace given.Rules for resolution:jif an explicit namespace is given, return the names which match it. If none match, return all names.sif the name has has explicit namespace given, return the names which match it and ignore the given namespace.otherwise, return all names.?7Determines whether the input constant represents a type@Get the docstring for a ConstEA term is injective iff it is a data constructor, type constructor, constant, the type Type, pi-binding, or an application of an injective term.<Count the number of instances of a de Bruijn index in a termFFReplace the outermost (index 0) de Bruijn variable with the given termGAs F, but also decrement the indices of all de Bruijn variables remaining in the term, so that there are no more references to the variable that has been substituted.HjReplace all non-free de Bruijn references in the given term with references to the name of their binding.I Replace references to the given /-like id with references to de Bruijn index 0.K9Convert several names. First in the list comes out as V 0LReplace de Bruijn indices in the given term with explicit references to the names of the bindings they refer to. It is an error if the given term contains free de Bruijn indices.MdReplace every non-free reference to the name of a binding in the given term with a de Bruijn index.OAs F, but in addition to replacing H 0#, replace references to the given  -like id.QAs O[, but takes a list of (name, substitution) pairs instead of a single name and substitutionR*Replaces all terms equal (in the sense of (==)%) to the old term with the new term.S<Return number of occurrences of V 0 or bound name i the termT=Returns true if V 0 and bound name n do not occur in the termU'Returns all names used free in the termV'Return the arity of a (normalised) typeWHDeconstruct an application; returns the function and a list of argumentsXxReturns a term representing the application of the first argument (a function) to every element of the second argument.ZsHard-code a heuristic maximum term size, to prevent attempts to serialize or force infinite or just gigantic terms[Cast a F term to a ~ value, discarding universe information and the types of named references and replacing all de Bruijn indices with the corresponding name. It is an error if there are free de Bruijn indices._ Introduce a IQ into the given term for each element of the given list of (name, binder) pairs.`Like _ , but the is are F9 terms instead. The first argument is a function to map TT terms to Binder0s. This function might often be something like j, which directly constructs a Binder from a TT term.a5Return a list of pairs of the names of the outermost k?-bound variables in the given term, together with their types.c7As getRetTy but substitutes names for de Bruijn indicesl?Check whether a term has any hole bindings in it - impure if somPWeaken a term by adding i to each de Bruijn index (i.e. lift it over i bindings)kWeaken an environment so that all the de Bruijn indices are correct according to the latest bound variable8Weaken every term in the environment by the given amountpPretty-print a termrPretty-print a raw term.s4Pretty-printer helper for the binding site of a nameHIgnore source location equality (so deriving classes do not compare FCs),-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOThe id to replace The replacement term The term to replace in PQR Old term  New term template term STUVWXYZ[\]^_`abcdefghijklmnop8The bound names (for highlighting and de Bruijn indices)The term to be printedqrBound names, for highlightingThe term to pretty-prints^ the bound name^ whether the name is implicittuvwxyz{|}~H,-./0123456789:;<=>?@ABCDEFGKJIHLMNOPQRSTUVWXYZ[\]^_`abcdefghinjklmopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsURSTUijklmnopqrstsusvsvswxssvss_`ab789:;6<=>?@AB,Cyz{|}     VWXYZ[\][\~.DEFGHIJKLMNOPQ-/012345cde^fgh;J4oV_s`,@?8!/HMA[]Uabc2FD<E>6750X=hT3SN#rpqkPIKlBCn\^.ij"-+*&OQRG)1Z (':$%WgedfY9Lm,-./0123456789:;<=>?@ABCDEF GHIJKLMNOPQRSTUV WXYZ[\][\^_`abcdefghijklmnopqrstsusvsvswxssvssyz{|}~ -      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Wrapper around Markdown library.License : BSD3The Idris Community.None23459:;<=?T  Block-level elements.(Representation of Idris's inline documentation. The type paramter represents the type of terms that are associated with code blocks.*>The various kinds of code samples that can be embedded in docs/"Render a term in the documentation0Run some kind of processing step over code in a Docstring. The code processor gets the language and annotations as parameters, along with the source and the original annotation.1GConstruct a docstring from a Text that contains Markdown-formatted docs25Convert a docstring to be shown by the pretty-printer3sConstruct a docstring consisting of the first block-level element of the argument docstring, for use in summaries.4The empty docstring5"Check whether a docstring is emtpy6$Empty documentation for a definition7%Does a string occur in the docstring?9(Annotate the code samples in a docstring. !"#$%&'()*+,-./0123456789How to annotate code samples& !"#$%&'()*+,-./0123456789&() !"#$%&'124563789*+,-./0  !"#$%&'()*+,-./0123456789,Turn literate programs into normal programs.License : BSD3The Idris Community.None 2349:;<=?KKKK Check universe constraints.License : BSD3The Idris Community.None 2349:;<=?L;Check that a list of universe constraints can be satisfied.variables in a constraintLLL L .Module to define and interact with case trees.License : BSD3The Idris Community.None 23459:;<=?M\reflection functioneinvariant: lowest tags firstf<special case for projections/thunk-forcing before inspectionh error messagei already checked to be impossiblenReturn all called functions, and which arguments are used in each argument position for the call, in order to help reduce compilation time, and trace all unused argumentsU     STUVWXYZ[\]^_`abcdefghijklmnopq !"#$%&'()*+,-./0?Convert single branches to projections (only useful at runtime)1rstuvw"STUVWXYZ[\]^_`abcdgefhijklmnopqrst"jk`defghiYZ[\]^_WSTUVXabcqlmnoprst6     STUVWXYZ[\]^_`abcdefghijklmnopq !"#$%&'()*+,-./01rstuvw Evaluate Idris expressions.License : BSD3The Idris Community.None23459:;<=?MvContexts used for global definitions and for proof state. They contain universe constraints and existing definitions.No meta-informationCMeta information for a data declaration with position of parameters'Reasons why a function may not be totalThe result of totality checkingwell-founded arguments productive5A definition is either a simple function (just an expression with a type), a constant, which could be a data or type constructor, an axiom or as an yet undefined function, or an Operator. An Operator is a function which explains how to reduce. A CaseOp is a function defined by a simple case tree A HOAS representation of values2whether to expand lets or notONormalise fully type checked terms (so, assume all names/let bindings resolved)9Normalise everything, whether abstract, private or publicCAs normaliseAll, but with an explicit list of names *not* to reduceZLike normalise, but we only reduce functions that are marked as okay to inline, and lets fLike simplify, but we only reduce functions that are marked as okay to inline, and don't reduce lets +Simplify for run-time (i.e. basic inlining)SUnfold the given names in a term, the given number of times in a stack. Preserves 'let'V. This is primarily to support inlining of the given names, and can also help with partial evaluation by allowing a rescursive definition to be unfolded once only. Specifically used to unfold definitions using interfaces before going to the totality checker (otherwise mutually recursive definitions in implementations will not work...)3Evaluate in a context of locally named things (i.e. not de Bruijn indexed, such as we might have during construction of a proof)The initial empty context"Get the definitions from a contextSGet the list of pairs of fully-qualified names and their types that match some namenGet the pair of a fully-qualified name and its type, if there is a unique one matching the name used as a key."Get the types that match some name4Get the single type that matches some name precisely}Return true if the given type is a concrete type familyor primitive False it it's a function to compute a type or a variable=Check whether a resolved name is certainly a data constructor=Check whether any overloading of a name is a data constructor;Create a unique name given context and other existing names4562789:;<=>?@ABCDEFG3HIJKLtv^4  562789:;<=>?@ABCDEFG3HIJKL NFData instances for TT.License : BSD3The Idris Community.None $2349:;<=?QForcing the contents of a context, for diagnosing and working around space leaks% !"#$%&'()*+,-./0123456789:;<=>?%?>=<;:9876543210/.-,+*)('&%$#"! % !"#$%&'()*+,-./0123456789:;<=>? Idris' type checker.License : BSD3The Idris Community.None 2349:;<=?M@ABCDEFGHIJKLMNO@ABCDEFGHIJKLMNOEFGHIJKLMN@ABCDO @ABCDEFGHIJKLMNO)Proof term. implementation and utilities.License : BSD3The Idris Community.None 2349:;<=?M MFA zipper over binders, because terms and binders are mutually defined.N@A zipper over terms, in order to efficiently update proof terms.OkReplace the top of a term path with another term path. In other words, "graft" one term path into another.P?Build a term from a zipper, given something to put in the hole.QABuild a binder from a zipper, given something to put in the hole.RFind the binding of a hole in a term. If present, return the path to the hole's binding, the environment extended by the binders that are crossed, and the actual binding term.XjRefocus the proof term zipper on a particular hole, if it exists. If not, return the original proof term.S)Is a particular binder a hole or a guess?\>Given a list of solved holes, fill out the solutions in a term]Given a list of solved holes, fill out the solutions in a term. Return whether updates were performed, to facilitate sharing when there are no updates.^As OW, in TT, but takes advantage of knowing not to substitute under Complete applications.T"Apply solutions to an environment.U'Fill out solved holes in a term zipper.-QRSTUVWVWXYZM[\]^_N`abcdOPQRXeYZ[fS\]^The id to replace The replacement term The term to replace in TU_`abcQRSTUVWXYZ[\]^_`abcWQRSTYZ[_\]bcX^UV`aQRSTUVWVWXYZM[\]^_N`abcdOPQRXeYZ[fS\]^TU_`abcIdris' unification code.License : BSD3The Idris Community.None 2349:;<=?MgPSmart constructor for unification errors that takes into account the FailContext hijklmgnhijklmnopgqopqrsrtuvwxyz ghijklmnopqr qrghijklmnophijklmgnhijklmnopgqopqrsrtuvwxyz"Reduction to Weak Head Normal FormLicense : BSD3The Idris Community.None 2349:;<=?M{A WHNF is a top level term evaluated in the empty environment. It is always headed by either an irreducible expression, i.e. a constructor, a lambda, a constant, or a postulateEvery . or - in this structure is associated with the environment it was encountered in, so that when we quote back to a term we get the substitutions right.|data constructor}type constructor~%irreducible global (e.g. a postulate)bA stack entry consists of a term and the environment it is to be evaluated in (i.e. it's a thunk)y'Reduce a term to weak head normal form.z0Reduce a type so that all arguments are expanded{|}~xyzxyzyzx { |}~xyzProof state implementation.License : BSD3The Idris Community.None 2349:;<=?M holes still to be solvedused names, don't use again%name supply, for locally unique names\a mirror of the global name supply, for generating things like type tags in reflectioncurrent proof term original goal(explicitly given by programmer, leave itUdot pattern holes + environment either hole or something in env must turn up in the  list during elaborationnames we'll need to define)implementation arguments (for interfaces) unsolved auto implicits with their holes'Local names okay to use in proof searchfor undo|}~#the name of what's to be elaboratedcurrent source filethe current global context0the value of the idris_datatypes field of IState+the value of the idris_name field of IState the goal typeZQRST|}~Z|}~QRSTP|.}~vA high level language of tactic composition, for building elaborators from a high level language into the core theory.License : BSD3The Idris Community.None 2349:;<=?MzTransform the error returned by an elaboration script, preserving location information and proof search failure messages.Modify the auxiliary stateGet the auxiliary state#Set whether to show the unifier log4Process a tactic within the current elaborator stateGet the global contextrUpdate the context. (should only be used for adding temporary definitions or all sorts of stuff could go wrong)get the proof termmodify the proof term4get the local context at the currently in focus hole\Return recently solved names (that is, the names solved since the last call to get_recents)get the current goal type2Get the guess at the current hole, if there is oneTypecheck locally-get holes we've deferred for later definition !get implementation argument names get auto argument names 4given a desired hole name, return a unique hole name/XTurn the current hole into a pattern variable with the provided name, made unique if MN0aTurn the current hole into a pattern variable with the provided name, but don't make MNs unique.6Set the zipper in the proof state to point at the current sub term (This currently happens automatically, so this will have no effect...)BKPrepare to apply a function by creating holes to be filled by the argumentsCEApply an operator, solving some arguments by unification or matching.DEApply an operator, solving some arguments by unification or matching.#the name of what's to be elaboratedthe current source filethe current global context0the value of the idris_datatypes field of IState+the value of the idris_name field of IState the goal type      !"#$%&'()*+,-./0123456789:;<=>?@ABThe operation being appliedWhether arguments are implicitWThe names of the arguments and their holes to be filled with elaborated argument valuesCThe operator to applyVFor each argument, whether to attempt to solve it and the priority in which to do soDThe operator to applyVFor each argument, whether to attempt to solve it and the priority in which to do soEFGHIJKLMNOPQRSTUVWXQRST|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX'Binary instances for the core datatypesLicense : BSD3The Idris Community.None 2349:;<=?Z[\]^_`abcdefghijjihgfedcba`_^]\[ZZ[\]^_`abcdefghijIdris' IDE ModeLicense : BSD3The Idris Community.None 2349:;<=?Mu&^ Recursive?, line, name, hints, depth|1^ the Int is the column count for pretty-printingaThe version of the IDE mode command set. Increment this when you change it so clients can adapt.Pklmnopqrstuvwxyz{|}~2kuyo}lmnpqrstvwxz{|~3klmnopqrstuvwxyz{|}~*klmnopqrstuvwxyz{|}~!Support for colours within Idris.License : BSD3The Idris Community.None 23459:;<=?$Idris's default console colour theme9Compute the ANSI colours corresponding to an Idris colour3Set the colour of a string using POSIX escape codes?Start a colour on a handle, to support colour output on WindowsEnd a colour region on a handleCSet the colour of a string using POSIX escape codes, with trailing '\STX'? denoting the end (required by Haskeline in the prompt string)*'' *Utilities for interacting with the System.License : BSD3The Idris Community.None 2349:;<=? Sub directory in  location..Environment variable to get new location from.   -Internal representation of Idris' constructs.License : BSD3The Idris Community.None 23459:;<=?M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqcdef`abPQRSTUVWXYZ[\]^_JKLMNOGHIEF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDghijklmnopqr @      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr&Transformations to apply to Idris' IR.License : BSD3The Idris Community.None 2349:;<=?MInline inside a declaration.Variables are still Name at this stage. Need to preserve uniqueness of variable names in the resulting definition, so invent a new name for every variable we encounter?Data structures and functions used with the JavaScript codegen.License : BSD3The Idris Community.None 2349:;<=?MVUV#Defunctionalise Idris' IR.License : BSD3The Idris Community.None 2349:;<=?MADivide up a large case expression so that each has a maximum of  branches,           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq     ,           Inline expressions.License : BSD3The Idris Community.None 2349:;<=?VSimplified expressions, where functions/constructors can only be applied to variables.License : BSD3The Idris Community.None 2349:;<=? !"#$%&'()*+,-./0123 !"#$%1&'()*+,-./0233 %&'()*+,-./012!"#$  !"#$% &'()*+,-./01238Common data structures required for all code generators.License : BSD3The Idris Community.None 23459:;<=?85Everything which might be needed in a code generator.A CG can choose which level of Decls to generate code from (simplified, defunctionalised or merely lambda lifted) and has access to the list of object files, libraries, etc.789:;<=>?@ABCDEFGHIJKLMNOP789:;<=>?@ABCDEFGHIKJLMNOPMNOPIJKL89:;<=>?@ABCDEFGH7789:;<=>?@ABCDEFGHIJKLMNOP$Core data definitions used in Idris.License : BSD3The Idris Community.None023459:;<=?M[Yinterface methods. When expanding implicits, these should be expanded even under binderszSyntactic sugar info)Miscellaneous information about functions(a function with a partially defined type.possible solutions to a metavariable in a type!flag whether it's a "data" methodmethod name -> default impl^the Bool is whether to include in implementation search, so named implementations are excludedtrue if the machine inferred it"second FC is precise name location"second FC is precise name location)the bool is whether to search recursively"flag sets whether delay is allowedHigh level language terms6Inclusion of a core term into the high-level languageA reference to a variable. The FC is its precise source location for highlighting. The list of FCs is a collection of additional highlighting locations.A name to be defined laterA pattern variable-A lambda abstraction. Second FC is name span.H(n : t1) -> t2, where the FC is for the precise location of the variable2A let binding (second FC is precise name location)Term with explicit typee.g. IO (), List Char, length xApplication plus a with argumentBImplicit argument application (introduced during elaboration only)implicitly bound application$Make an application by type matchingDConditional expressions - elaborated to an overloading of ifThenElseWA case expression. Args are source location, scrutinee, and a list of pattern/RHS pairs Unit type..?-Solve this dictionary by interface resolutionL"rewrite" syntax, with optional rewriting function and optional result typevA pair (a, b) and whether it's a product type or a pair (solved by elaboration). The list of FCs is its punctuation.A dependent pair (tm : a ** b) and whether it's a sigma type or a pair that inhabits one (solved by elaboration). The [FC] is its punctuation.@-pattern, valid LHS onlyH(| A, B, C|). Includes unapplied unique name mappings for mkUniqueNames.Irrelevant or hidden pattern- type Some universe)quoteGoal, used for %reflection functions Builtin types Underscore Do notationIdiom brackets/A metavariable, ?name, and its precise location Proof scriptAs PProof, but no auto solvingError to report on elaboration 6Special case for declaring when an LHS can't typecheck 5To mark a coerced argument, so as not to coerce twice #Preferences for explicit namespaces /dump a trace of unifications when building term )never run implicit converions on the term`(Term [: Term])~Term`{n} where the FC is the precise highlighting for the name in particular. If the Bool is False, then it's `{{n}} and the name won't be resolved.V%runElab tm - New-style proof script. Args are location, script, enclosing namespace.cA desugared constant. The FC is a precise source location that will be used to highlight it later.Data declarationData declaration Placeholder. for data whose constructors are defined laterThe name of the datatype1The precise location of the type constructor nameType constructor  Constructors!IOne clause of a top-level definition. Term arguments to constructors are: ^The whole application (missing for PClauseR and PWithR because they're within a "with" clause)The list of extra with patternsThe right-hand sideThe where block (PDecl' t)"A normal top-level definition.'For elaborator state-names bound as auto implicits.6Implicit warnings to report (location and global name)/A set of instructions for things that need to happen in IState after a term elaboration when there's been reflected elaboration.4Datatype, constructors5The set of source directivesJ[Top-level declarations such as compiler directives, definitions, datatypes and interfaces.KFixity declarationL3Type declaration (last FC is precise name location)M-Postulate, second FC is precise name locationNPattern clauseOTop level constantPData declaration.Q Params blockROpen block/declarationSJNew namespace, where FC is accurate location of the namespace in the fileT Record name.UInterface: arguments are documentation, syntax info, source location, constraints, interface name, interface name location, parameters, method declarations, optional constructor nameVImplementation declaration: arguments are documentation, syntax info, source location, constraints, interface name, parameters, full Implementation type, optional explicit name, and definitionsWDSL declarationXSyntax definitionY Mutual blockZCompiler directive.[pType provider. The first t is the type, the second is the term. The second FC is precise highlighting location.\XSource-to-source transformation rule. If bool is True, lhs and rhs must be convertible.]BFC is decl-level, for errors, and Strings represent the namespace_Type provider - what to provide`2the first is the goal type, the second is the terma$goal type must be Type, so only termd always evaluate when simplifyingh8all delayed arguments guaranteed guarded by constructorsjZinterface dictionary, eval only when a function argument, and further evaluation results.k&Interface dictionary which may overlaplimplicit coercionmdo not apply implicit coercionsnexport, with a C nameo;an error handler for use with the ErrorReflection extensionp4attempt to reverse normalise before showing in errorq(a reflecting function, compile-time onlyr!specialise it, freeze these namessUnfold given interface name in the definition, the top level methods, and anything which has the interface name as an argument. This is to unfold things for termination checking, as interfaces will otherwise cause problemstData constructor typeuuse in auto implicit searchvgenerated by partial evaluatorw3Marked static, to be evaluated by partial evaluator#this is a param (rather than index)Nothing, if top levelExplicitly written in source3Mark bindings with their explicitness, and laziness REPL TCP port#Automatically adjust terminal widthBAutomatically issue "solve" tactic in old-style interactive prover)Don't show deprecation warnings for %elim5Don't show deprecation warnings for old-style tactics5Recognised logging categories for the Idris compiler.@TODO add in sub categories.qThe monad for the main REPL - reading and processing files and updating global state (hence the IO inner monad). C type Idris = WriterT [Either String (IO ())] (State IState a)) True = import publicThe main context.6The name is the special name used to track module docs3(The global state used in the Idris monad5/All the currently defined names and their terms6GA list of universe constraints and their corresponding source locations7!Currently defined infix operators;4Privileged implementations, will resolve immediatelyAHlist of lhs/rhs, and a list of missing clauses. These are not exported.Cname, args used in each posEgmodule documentation is saved in a special MN so the context mechanism can be used for disambiguation.Jnames to check totality onKnames to check at the endO#Full application LHS on source linePThe currently defined but not proven metavariables. The Int is the number of vars to display as a context, the Maybe Name is its top-level function, the [Name] is the list of local variables available for proof search and the Bools are whether :p is allowed, and whether the variable is definable at all (Metavariables are not definable if they are applied in a term which still has hole bindings)UThe imported modules['Imported ibc file names, whether publicb-What was the span of the latest token parsed?nGlobal error handlerspSpecific error handlersr#How many chars wide is the console?u4Function/constructor name, argument position is usedxFList of names that were defined in the repl, and can be re-/un-definedyStack of names currently being elaborated, Bool set if it's an implementation (implementations appear twice; also as a funtion name)z)Symbol table (preserves sharing of names){Functions with ExportList|"Highlighting information to output}(Highlighting information from the parser~ Deprecated names and explanationNames defined in current moduleFragile names and explanation.<If a function has no totality annotation, what do we assume?TotalPartialTotal coverage, but may divergeHow wide is the console?:Have pretty-printer assume that lines should not be broken%Manually specified - must be positive+Attempt to determine width, or 80 otherwiseThe output mode in use(Print user output directly to the handle1Send IDE output for some request ID to the handle&partial eval and associated transformswhether to show implicits$whether to show names in pi bindingsList of logging categories.show implicitsremember whole command line,automatically apply "solve" tactic in prover$List of modules to auto import i.e. `Builtins+Prelude`normalise types in `:t`hData to pass to recursively called elaborators; e.g. for where blocks, paramaterised declarations, etc.rec_elabDecl is used to pass the top level elaborator into other elaborators, so that we can have mutually recursive elaborators in separate modules without having to muck about with cyclic modules.$names in the block, and their params+filename for adding to constraint variableswWe may, recursively, collect transformations to do on the rhs, e.g. rewriting recursive calls to functions defined by with/Pretty printing options with default verbosity.0Pretty printing options with the most verbosity.8Get pretty printing options from the big options record.7Get pretty printing options from an idris state record."The initial state for the compilerTransform the FCs in a PData and its associated terms. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially.Transform the FCs in a PTerm. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially.+Get all the names declared in a declarationTransform the FCs in a PTerm. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially.+Get the highest FC in a term, if one exists The special name to be used in the module documentation context - not for use in the main definition context. The namespace around it will determine the module to which the docs adhere. Colourise annotations according to an Idris state. It ignores the names in the annotation, as there's no good way to show extended information on a terminal. 7Colourise annotations according to an Idris state. It ignores the names in the annotation, as there's no good way to show extended information on a terminal. Note that strings produced this way will not be coloured on Windows, so the use of the colour rendering functions in Idris.Output is to be preferred. _Pretty-print a high-level closed Idris term with no information about precedence/associativity >Serialise something to base64 using its Binary implementation.4Do the right thing for rendering a term in an IState OPretty-print a high-level Idris term in some bindings context with infix info.  Strip away namespace information UDetermine whether a name was the one inserted for a hole or guess by the delaborator QCheck whether a PTerm has been delaborated from a Term containing a Hole or Guess EPretty-printer helper for names that attaches the correct annotations )Show Idris name +&Show a term with implicits, no colours ,!Show a term with specific optionsUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    pretty printing optionsthe term to pretty-print  pretty printing options7the currently-bound names and whether they are implicit,names to always show in pi, even if not usedFixity declarationsthe term to pretty-print    Cwhether the name should be parenthesised if it is an infix operatorwhether to show namespaces9the current bound variables and whether they are implicitthe name to pprint ! " # $ % & ' ( )8the Idris state, for information about names and colours0the bound variables and whether they're implicitpretty printing optionswhether to colourisethe term to show *>the Idris state, for information about identifiers and coloursthe term to show + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @UVW^XYZ[\]_`abcdefhgijklnpmoqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcrtdqefghijklmnopsuvwx{zy|}~      !"#$%&'()*+,-.2/0134?8A5D:kM679;<=>@BCEFGHIJKLNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 33456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ @./012-,&'()*+      !"#$% ? > =xyz{|}~}~}~}~cdefghijklmnopqrstuvwb_`a^JKLMNOPQRSTUVWXYZ[\]56789:;<=>?@ABCDEFGHI/01234'()*+,-.&!"#$%       < ; :z{|}~yuvwxrstlmnopqijkfghUVWXYZ[\]^_`abcde                 9 8 7 6 5           ! " # $ % & ' ( ) * + , 4 - . / 0 1 2 3UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz {|}~ (,       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~}~}~F /      !"#$%&'()*+,-./0123N456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @This implements just a few basic lens-like concepts to ease state updates. Similar to fclabels in approach, just without the extra dependency.License : BSD3The Idris Community.None 2349:;<=? JExact-name context lookup; uses Nothing for deleted values (read+write!).`Reading a non-existing value yields Nothing, writing Nothing deletes the value (if it existed). 2the optimisation record for the given (exact) name %two fields of the optimisation record +callgraph record for the given (exact) name Commandline flags  TT ContextcThis has a terrible name, but I'm not sure of a better one that isn't confusingly close to tt_ctxt Names defined at the repl  Fixity declarations in an IState        7Provides Idris' core data definitions and utility code.License : BSD3The Idris Community.None 2349:;<=?M Transforms are organised by the function being applied on the lhs of the transform, to make looking up appropriate transforms quicker 3get the accessibility of a name outside this module wAdds error handlers for a particular function and argument. If names are ambiguous, all matching handlers are updated. >Trace all the names in a call graph starting at the given name )Add an interface implementation function.>Precondition: the implementation should have the correct type.]Dodgy hack 1: Put integer implementations first in the list so they are resolved by default.3Dodgy hack 2: put constraint chasers (ParentN) last "Add a privileged implementation - one which implementation search will happily resolve immediately if it is type correct This is used for naming parent implementations when defining an implementation with constraints. Returns the old list, so we can revert easily at the end of a block %!Used to preserve sharing of names 3PA version of liftIO that puts errors into the exception type of the Idris monad 5InternalApp keeps track of the real function application for making case splits from, not the application the programmer wrote, which doesn't have the whole context in any case other than top level definitions 7WPattern definitions are only used for coverage checking, so erase them when we're done 8Erase types from Ps in the context (basically ending up with what's in the .ibc, which is all we need after all the analysis is done) @5Save information about a name that is not yet defined J+Tell clients how much was parsed and loaded [Set appropriate optimisation set for the given level. We only have one optimisation that is configurable at the moment, however! Log an action of the parser  Log an action of the elaborator. Log an action of the compiler. Log aspect of Idris execution@An empty set of logging levels is used to denote all categories.@TODO update IDE protocol Calculate a priority for a type, for deciding elaboration order * if it's just a type variable or concrete type, do it early (0) * if there's only type variables and injective constructors, do it next (1) * if there's a function type, next (2) * finally, everything else (3) BAdd implicit bindings from using block, and bind any missing names ^Even if auto_implicits is off, we need to call this so we record which arguments are implicit (Add implicit arguments in function calls Add the implicit arguments to applications in the term [Name] gives the names to always expend, even when under a binder of that name (this is to expand methods with implicit arguments in dependent interfaces). zreturn True if the second argument is an implicit argument which is expected in the implicits, or if it's not an implicit Remove functions which aren't applied to anything, which must then be resolved by unification. Assume names resolved and alternatives filled in (so no ambiguity). Find static argument positions (the declared ones, plus any names in argument position in the declared statics) FIXME: It's possible that this really has to happen after elaboration Syntactic match of a against b, returning pair of variables in a and what they match. Returns the pair that failed if not a match. jRename any binders which are repeated (so that we don't have to mess about with shadowing anywhere else). sReturns None if given an Opt which is not PkgMkDoc Otherwise returns Just x, where x is the contents of PkgMkDoc                     -whether the name is an Integer implementation>whether to include the implementation in implementation searchthe name of the interfacethe name of the implementation      ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @The Name is the name being made into a metavar, the Int is the number of vars that are part of a putative proof context, the Maybe Name is the top-level function containing the new metavariable, the Type is its type, and the Bool is whether :p is allowed 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 { | } ~  4The categories that the message should appear under.,The Logging level the message should appear."The message to show the developer. function being applied #initial arguments (if in a pattern) Opt to extractResult the option to extractthe package file to test UVW^XYZ[\]_`abcdefhgijklnpmoqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcrtdqefghijklmnopsuvwx{zy|}~      !"#$%&'()*+,-.2/0134?8A5D:kM679;<=>@BCEFGHIJKLNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3                           ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~                             ! " # $ % & ' ( ) * + , - . / 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 { | } ~  6Search loaded Idris code and named modules for things.License : BSD3The Idris Community.None 2349:;<=? Find definitions that are relevant to all space-delimited components of some string. Relevance is one or more of the following:%the string is a substring of the name-the string occurs in the documentation string%the type of the definition is apropos bFind modules whose names or docstrings contain all the space-delimited components of some string.      !Code to deal with DSL blocks.License : BSD3The Idris Community.None 2349:;<=?M $Replace DSL-bound variable in a term    "$Code to elaborate pattern variables.License : BSD3The Idris Community.None 2349:;<=? 9Desugar by changing x@y on lhs to let x = y in ... or rhsQReplace _-patterns under @-patterns with fresh names that can be used on the RHS    #"Code to elaborate quasiquotations.License : BSD3The Idris Community.None 2349:;<=?    $6Utility to make errors readable using transformations.License : BSD3The Idris Community.None 2349:;<=?M fFor display purposes, apply any 'error reversal' transformations so that errors will be more readable    %LConvert core TT back into high level syntax, primarily for display purposes.License : BSD3The Idris Community.None 2349:;<=?M  Re-add syntactic sugar in a term Delaborate and resugar a term $Delaborate a term without resugaring Delaborate a term directly, leaving case applications as they are. We need this for interactive case splitting, where we need access to the underlying function in a delaborated form, to generate the right patternsHow far to indent sub-errorsaActually indent a sub-error - no line at end because a newline can end multiple layers of indent +Pretty-print a core term using delaboration "Pretty-print the type of some nameMake sure the machine invented names are shown helpfully to the user, so that any names which differ internally also differ visibly MAdd extra metadata to an output annotation, optionally marking metavariables. "implicit arguments to type, if anyuse full names#Don't treat metavariables specially resugar cases                   &Idris' Inliner.License : BSD3The Idris Community.None 2349:;<=?M KInlining is either top level (i.e. not in a function arg) or argument levelFor each application in a term: * Check if the function is inlinable (Dictionaries are inlinable in an argument, not otherwise) - If so, try inlining without reducing its arguments + If successful, then continue on the result (top level) + If not, reduce the arguments (argument level) and try again - If not, inline all the arguments (top level)    'IUtilities to display Idris' internals and other informtation to the user.License : BSD3The Idris Community.None 2349:;<=? AWrite a pretty-printed term to the console with semantic coloring UPretty-print a collection of overloadings to REPL or IDEMode - corresponds to :t name @Write pretty-printed output to IDEMode with semantic annotations (Show an error with semantic highlighting 7Warn about totality problems without failing to compile zWrite the highlighting information to a file, for use in external tools or in editors that don't support the IDE protocol                                                   ('Utilities to deal with error reporting.License : BSD3The Idris Community.None 02349:;<=? GIssue a warning on "with"-terms whose namespace is empty or nonexistent                                            )Deal with external things.License : BSD3The Idris Community.None 2349:;<=?M        *'Clause generation for coverage checkingLicense : BSD3The Idris Community.None 2349:;<=?M Generate a pattern from an  impossible LHS.nWe need this to eliminate the pattern clauses which have been provided explicitly from new clause generation. !Given a list of LHSs, generate a extra clauses which cover the remaining cases. The ones which haven't been provided are marked absurd7 so that the checker will make sure they can't happen.dThis will only work after the given clauses have been typechecked and the names are fully explicit! "GDoes this error result rule out a case as valid when coverage checking? #QCheck whether an error is recoverable in the sense needed for coverage checking. ! !" " # ! " # ! " # ! !" " #+#Code to handle import declarations.License : BSD3The Idris Community.None 2349:;<=? (*Get the index file name for a package name#1Case sensitive file existence check for Mac OS X.$6Case sensitive directory existence check for Mac OS X. $ % & ' (%&'( ) * + , -#$) $ ' % & ( ) * + , - $ % & ' * + , ) - ( $ % & ' (%&'( ) * + , -#$),Act upon Idris directives.License : BSD3The Idris Community.None 2349:;<=? 0+Run the action corresponding to a directive 0*+ 0 0 0*+-Get information about Idris.2016 The Idris CommunityBSD3The Idris Community.None 2349:;<=? <2Get the platform-specific, user-specific Idris dir =9Locate the platform-specific location for the init script 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 1 2 3 5 4 6 7 8 9 : ; < = > ? @ 1 2 3 4 5 6 7 8 9 : ; < = > ? @.None 2349:;<=? OList idris packages installed A B C D E F G H I J K L M N O P Q R S T A B C D E F G H I J K L M N O P Q R S T A B C D E F G H I J K L M N O P Q R S T A B C D E F G H I J K L M N O P Q R S T/Utilities for Idris' parser.License : BSD3The Idris Community.None*/2349:;<=?IMA URepresentation of an operation that can compare the current indentation with the last indentation, and an error message if it fails Y+Generalized monadic parsing constraint type ]+Idris parser with state used during parsing ^5Helper to run Idris inner parser based stateT parsers dKConsumes any simple whitespace (any character which satisfies Char.isSpace) e#Checks if a charcter is end of line f-A parser that succeeds at the end of the line gConsumes a single-line comment  SingleLineComment_t ::= '--' ~EOL_t* EOL_t ; hConsumes a multi-line comment G MultiLineComment_t ::= '{ -- }' | '{ -' InCommentChars_t ; k InCommentChars_t ::= '- }' | MultiLineComment_t InCommentChars_t | ~'- }'+ InCommentChars_t ; iParses a documentation comment  DocComment_t ::= |||" ~EOL_t* EOL_t ; jParses some white space kParses a string literal lParses a char literal mParses a natural number nParses an integral number oParses a floating point number p5Idris Style for parsing identifiers/reserved keywords sParses a character as a token tIParses a character as a token, returning the source span of the character uParses string as a token wParses a reserved identifier xoParses a reserved identifier, computing its span. Assumes that reserved identifiers never contain line breaks. y>Parse a reserved identfier, highlighting its span as a keyword zParses a reserved operator |Parses an identifier as a token }6Parses an identifier with possible namespace as a name ~1Parses an string possibly prefixed by a namespace  Parses a name List of all initial segments in ascending order of a list. Every such initial segment ends right before an element satisfying the given condition.  Create a D from a pair of strings representing a base name and its namespace. Parses an operator Parses an operator SGet filename from position (returns "(interactive)" when no source file is given) Get line number from position  Get column number from position Get file position as FC Bind constraints to term commaSeparated p" parses one or more occurences of p4, separated by commas and optional whitespace. Push indentation to stack Pops indentation from stack Gets current indentation Gets last indentation &Applies parser in an indented position FApplies parser to get a block (which has possibly indented statements) bApplies parser to get a block with at least one statement (which has possibly indented statements) LApplies parser to get a block with exactly one (possibly indented) statement 9Checks if the following character matches provided parser Parses a start of block Parses an end of block Parses a terminator Parses and keeps a terminator -Checks if application expression does not end "Checks that it is not end of block ?Allows comparison of indent, and fails if property doesn't hold Greater-than indent property (Greater-than or equal to indent property Equal indent property Less-than indent property %Less-than or equal to indent property 3Checks that there are no braces that are not closed 7Parses an accessibilty modifier (e.g. public, private) &Adds accessibility option for function KAdd accessbility option for data declarations (works for interfaces too - abstract6 means the data/interface is visible but members not) 'Error message with possible fixes list Collect N with the same function nameX 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 { | } ~  U 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 { | } ~  X ] Z [ \ Y W X ^ _ ` 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 { | } ~  U V 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 { | } ~  0-Parser for operators and fixity declarations.License : BSD3The Idris Community.None*2349:;<=?IM Creates table for fixity declarations to build expression parser using pre-build and user-defined operator/fixity declarations (Calculates table for fixity declarations Binary operator Prefix operator Backtick operator )Operator without fixity (throws an error) ZParses an operator in function position i.e. enclosed by `()', with an optional namespace  OperatorFront ::= '(' '=' ')' | (Identifier_t ,)? '(' Operator_t ')' ; 2Parses a function (either normal name or operator) # FnName ::= Name | OperatorFront; Parses a fixity declaration ? Fixity ::= FixityType Natural_t OperatorList Terminator ; @Check that a declaration of an operator also has fixity declared :Checks that an operator name also has a fixity declaration FParses a fixity declaration type (i.e. infix or prefix, associtavity)  FixityType ::= 'infixl' | 'infixr' | 'infix' |   ; 1Parse Expressions.License : BSD3The Idris Community.None*2349:;<=?ILM= Parses a tactic script  Tactic ::= intro NameList? | intros | refine Name Imp+ | mrefine Name | rewrite Expr |  induction Expr | equiv Expr | 'let' Name : Expr' '=' Expr | 'let' Name '=' Expr | focus Name | exact Expr |  applyTactic Expr | reflect Expr | fill Expr | - Tactic '|'0 Tactic | '{' TacticSeq '}' | compute | trivial | solve | attack | . | term | undo | qed | abandon | : q ; Imp ::= ? | '_'D; TacticSeq ::= Tactic ';' Tactic | Tactic ';' TacticSeq ; 6A specification of the arguments that tactics can take Names: n1, n2, n3, ... n (Parses a record field setter expression  RecordType ::= record '{' FieldTypeList '}';  C FieldTypeList ::= FieldType | FieldType ',' FieldTypeList ;   FieldType ::= FnName '=' Expr ; &the FC is for highlighting information  Allow implicit type declarations #Disallow implicit type declarations !Allow scoped constraint arguments  Parses an expression as a whole  FullExpr ::= Expr EOF_t; Parses an expression  Expr ::= Pi 4Parses an expression with possible operator applied  OpExpr ::= ; IParses either an internally defined expression or a user-defined one E Expr' ::= "External (User-defined) Syntax" | InternalExpr; !Parses a user-defined expression (Parses a simple user-defined expression NTries to parse a user-defined expression given a list of syntactic extensions &Parses a (normal) built-in expression  InternalExpr ::= UnifyLog | RecordType | SimpleExpr | Lambda | QuoteGoal | Let | If | RewriteTerm | CaseExpr | DoBlock | App ;  Parses the "impossible" keyword  Impossible ::=   Parses a case expression  CaseExpr ::= 'case' Expr 'of'# OpenBlock CaseOption+ CloseBlock; #Parses a case in a case expression % CaseOption ::= Expr (Impossible | '=>' Expr) Terminator ; Parses a proof block  ProofExpr ::= proof# OpenBlock Tactic'* CloseBlock ; Parses a tactics block  TacticsExpr :=  ! OpenBlock Tactic'* CloseBlock ; +Parses a simple expression @ SimpleExpr ::=| ? Name | % implementation | Refl} ('{' Expr '}')? | ProofExpr | TacticsExpr | FnName | Idiom | List | Alt | Bracketed | Constant | Type | Void. | Quasiquote | NameQuote | Unquote | '_' ; @ $Parses an expression in parentheses  Bracketed ::= '(' Bracketed' +Parses the rest of an expression in braces z Bracketed' ::= ')' | Expr ')' | ExprList ')' | DependentPair ')' | Operator Expr ')' | Expr Operator ')' ; <Parses the rest of a dependent pair after '(' or '(Expr **' GParse the contents of parentheses, after an expression has been parsed. (Finds optimal type for integer constant AParses an alternative expression @ Alt ::= '(|' Expr_List '|)';7Expr_List ::= Expr' | Expr' ',' Expr_List ; @ +Parses a possibly hidden simple expression  HSimpleExpr ::= , SimpleExpr | SimpleExpr ; 3Parses a unification log expression UnifyLog ::= %   SimpleExpr ; 7Parses a new-style tactics expression RunTactics ::= %   SimpleExpr ; 0Parses a disambiguation expression Disamb ::= with NameList Expr ; !Parses a no implicits expression  NoImplicits ::= %   SimpleExpr ; )Parses a function application expression  App ::=  mkForeignI Arg Arg* | MatchApp | SimpleExpr Arg* ; MatchApp ::= SimpleExpr <== FnName ; Parses a function argument < Arg ::= ImplicitArg | ConstraintArg | SimpleExpr ; %Parses an implicit function argument  ImplicitArg ::= '{' Name ('=' Expr)? '}' ; MParses a constraint argument (for selecting a named interface implementation) . ConstraintArg ::= '@{' Expr '}' ; RParses a quasiquote expression (for building reflected terms using the elaborator) Quasiquote ::= '`(' Expr ')' _Parses an unquoting inside a quasiquotation (for building reflected terms using the elaborator) Unquote ::= ',' Expr QParses a quotation of a name (for using the elaborator to resolve boring details) NameQuote ::= '`{' Name '}' 7Creates setters for record types on necessary functions Parses a type signature  TypeSig ::= : Expr ;  $ TypeExpr ::= ConstraintList? Expr; Parses a lambda expression  Lambda ::= / TypeOptDeclList LambdaTail | / SimpleExprList LambdaTail ;  G SimpleExprList ::= SimpleExpr | SimpleExpr ',' SimpleExprList ;  # LambdaTail ::= Impossible | '=>' Expr !Parses a term rewrite expression  RewriteTerm ::= rewrite Expr (==> Expr)? 'in' Expr ; !Parses a let binding @ Let ::= 'let' Name TypeSig'? '=' Expr 'in' Expr | 'let' Expr' '=' Expr' 'in' ExprTypeSig' ::= : Expr' ; @  Parses a conditional expression  If ::= 'if' Expr 'then' Expr 'else' Expr Parses a quote goal QuoteGoal ::=   Name by Expr 'in' Expr ; !Parses a dependent type signature Pi ::= PiOpts Static? Pi' Pi' ::= OpExpr ('->'4 Pi)? | '(' TypeDeclList ')' '->'2 Pi | '{' TypeDeclList '}' '->' Pi | '{' auto TypeDeclList '}' '->' Pi | '{'  'default' SimpleExpr TypeDeclList '}' '->' Pi ; +Parses Possible Options for Pi Expressions  PiOpts ::= ,? Parses a type constraint list )ConstraintList ::= '(' Expr_List ')' '=>' | Expr '=>' ; Parses a type declaration list E TypeDeclList ::= FunctionSignatureList | NameList TypeSig ; ZFunctionSignatureList ::= Name TypeSig | Name TypeSig ',' FunctionSignatureList ; 8Parses a type declaration list with optional parameters k TypeOptDeclList ::= NameOrPlaceholder TypeSig? | NameOrPlaceholder TypeSig? ',' TypeOptDeclList ; NameOrPlaceHolder ::= Name | '_'; `Parses a list literal expression e.g. [1,2,3] or a comprehension [ (x, y) | x <- xs , y <- ys ] ( ListExpr ::= '[' ']' | '[' Expr '|'# DoList ']' | '[' ExprList ']' ;  ) DoList ::= Do | Do ',' DoList ;  / ExprList ::= Expr | Expr ',' ExprList ; Parses a do-block  Do' ::= Do KeepTerminator; DoBlock ::= 'do' OpenBlock Do'+ CloseBlock ; 'Parses an expression inside a do block  Do ::= 'let' Name TypeSig'? '=' Expr | 'let' Expr' '=' Expr | Name '<-' Expr | Expr' '<-' Expr | Expr ; 'Parses an expression in idiom brackets  Idiom ::= '[|' Expr '|]'; 'Parses a constant or literal expression Constant ::= 0 | 1 | 2 | 3 | 4 | Bits8 | Bits16 | Bits32 | Bits64L | Float_t | Natural_t | VerbatimString_t | String_t | Char_t ; $Parse a constant and its source span ;Parses a verbatim multi-line string literal (triple-quoted) ,VerbatimString_t ::= '"""' ~'"""' '"""' ; Parses a static modifier  Static ::=  '%static' ; ;A list of available tactics and their argument requirements Parses a tactic as a wholeV                     V                     V                     N                        2Parse Data declarations.License : BSD3The Idris Community.None*2349:;<=?IM JParses a record type declaration Record ::= DocComment Accessibility?   FnName TypeSig 'where'1 OpenBlock Constructor KeepTerminator CloseBlock; :Parses data declaration type (normal or codata) DataI ::= 'data' | 2; LParses if a data should not have a default eliminator DefaultEliminator ::= noelim? !$Parses a data type declaration Data ::= DocComment? Accessibility? DataI DefaultEliminator FnName TypeSig ExplicitTypeDataRest? | DocComment? Accessibility? DataI DefaultEliminator FnName Name* DataRest? ; Constructor' ::= Constructor KeepTerminator; ExplicitTypeDataRest ::= 'where'$ OpenBlock Constructor'* CloseBlock; DataRest ::= '='0 SimpleConstructorList Terminator | 'where'U! ; SimpleConstructorList ::= SimpleConstructor | SimpleConstructor '|' SimpleConstructorList ; "SParses a type constructor declaration Constructor ::= DocComment? FnName TypeSig; #uParses a constructor for simple discriminated union data types SimpleConstructor ::= FnName SimpleExpr* DocComment? $'Parses a dsl block declaration DSL ::=  $( FnName OpenBlock Overload'+ CloseBlock; %Checks DSL for errors &9Parses a DSL overload declaration OverloadIdentifier ::= 'let'/ | Identifier; Overload ::= OverloadIdentifier '=' Expr;     ! " # $ % &     ! " # $ % &     ! " # $ % &     ! " # $ % &3&Implementation of a partial evaluator.License : BSD3The Idris Community.None 2349:;<=?M5A partially evaluated function. pe_app captures the lhs of the new definition, pe_def captures the rhs, and pe_clauses is the specialised implementation.ype_simple is set if the result is always reducible, because in such a case we'll also need to reduce the static argument +SData type representing binding-time annotations for partial evaluation of arguments ,Implicit static argument -Implicit dynamic argument .Implementation constraint /Implementation constraint 0Explicit static argument 1Explicit dynamic argument 23Erasable dynamic argument (found under unification) 3Partially evaluates given terms under the given context. It is an error if partial evaluation fails to make any progress. Making progress is defined as: all of the names given with explicit reduction limits (in practice, the function being specialised) must have reduced at least once. If we don't do this, we might end up making an infinite function after applying the transformation. 4Specialises the type of a partially evaluated TT function returning a pair of the specialised type and the types of expected arguments. 5Creates an Idris type declaration given current state and a specialised TT function application type. Can be used in combination with the output of  4.tThis should: specialise any static argument position, then generalise over any function applications in the result.6>Checks if a given argument is an interface constraint argument7Checks if the given arguments of an interface constraint are all either constants or references (i.e. that it doesn't contain any complex terms). 6Creates a new declaration for a specialised function application. Simple version at the moment: just create a version which is a direct application of the function to be specialised. More complex version to do: specialise the definition clause by clause 71Get specialised applications for a given function58 ' ( ) * + , - . / 0 1 2 3 4 5679definition to specialisearguments to specialise withNew nameSpecialised function name Default lhs Default rhs 6Type of specialised function 7 * ) ( ' + , - . / 0 1 2 3 4 5 6 7 3 7 4 5 6 + , - . / 0 1 2 ' ( ) * 58 ' ( ) * + , - . / 0 1 2 3 4 5679 6 74"Provision of primitive data types.License : BSD3The Idris Community.None2349:;<=?MOTN : ; < = > ? @ A:;<= B>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ : ; < = > ? @ A B B : ; < = > ? @ AG : ; < = > ? @ A:;<= B>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5$Utilities to erase irrelevant stuff.License : BSD3The Idris Community.None 2349:;<=?M .Variables carry certain information with them.%dependencies drawn in by the variableJwhich function argument this variable came from (defined only for patvars)5name of the metamethod represented by the var, if any Condition is the conjunction of elementary assumptions along the path from the root. Elementary assumption (f, i) means that "function f uses the argument i"./Nodes along with sets of reasons for every one.EUseMap maps names to the set of used (reachable) argument positions. CzPerform usage analysis, write the relevant information in the internal structures, returning the list of reachable names.6Find the minimal consistent usage by forward chaining.RBuild the dependency graph, starting the depth-first search from a list of Names. DBMake a field name out of a data constructor name and field number. C D E C D C D C D E6$Searches current context for proofs'License : BSD3The Idris Community.None 2349:;<=?M L+Resolve interfaces. This will only pick up normalF implementations, never named implementations (which is enforced by ).Find the names of implementations that have been designeated for searching (i.e. non-named implementations or implementations from Elab scripts) I J Krecursive search (False for refine){invoked from a tactic proof. If so, making new metavariables is meaningless, and there should be an error reported instead. ambiguity okdefer on failure maximum depth Lusing default Intallow open implementationsdepth"top level goal, for error messages)top level function name, to prevent loopstop level elaborator I J K L I J K L I J K L7!The termination checker for IdrisLicense : BSD3The Idris Community.None 2349:;<=?M SoCheck whether function and all descendants cover all cases (partial is okay, as long as it's due to recursion) TCheck whether all Inf arguments to the name end up guaranteed to be guarded by constructors (conservatively... maybe this can do better later). Essentially, all it does is check that every branch is a constructor application with no other function applications.If so, set the h1 flag which can be used by the productivity check UCheck if, in a given group of type declarations mut_ns, the constructor cn : ty is strictly positive, and update the context accordingly VCalculate the totality of a function from its patterns. Either follow the size change graph (if inductive) or check for productivity (if coinductive) Z3Calculate the size change graph for this definitionsSCG for a function f consists of a list of: (g, [(a1, sizechange1), (a2, sizechange2), ..., (an, sizechangen)])where g is a function called a1 ... an are the arguments of f in positions 1..n of g sizechange1 ... sizechange2 is how their size has changed wrt the input to f Nothing, if the argument is unrelated to the input M N O P Q R S T Uthe group of type declarationsthe constructor V W X Y Z [ \ ] ^ _ ` a b c d e f M N R O P Q S T U V W X Y Z [ \ ] ^ _ ` a b c d e f S T U V W X Y Z [ \ N O P Q R ] ^ M _ ` a b c d e f M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f8 A collection of transformations.License : BSD3The Idris Community.None 2349:;<=?M jQWork on explicitly named terms, so we don't have to manipulate de Bruijn indices kQWork on explicitly named terms, so we don't have to manipulate de Bruijn indices h i j k h i j k h i k j h i j k9"Find function callers and callees.License : BSD3The Idris Community.None 2349:;<=?  l m l m l m  l m:%Execute Idris code and deal with FFI.License : BSD3The Idris Community.None2349:;<=?AMT n n n n;DOptimisations for Idris code i.e. Forcing, detagging and collapsing.License : BSD3The Idris Community.None 2349:;<=?MNNeed to saturate arguments first to ensure that optimisation happens uniformly  o p q r s t u v w o o  o p q r s t u v w<?Data structures and utilities to work with Idris Documentation.License : BSD3The Idris Community.None 2349:;<=?M\NDetermine a truncation function depending how much docs the user wants to see WGiven a fully-qualified, disambiguated name, construct the documentation object for it x y z { | } ~      x y z { | } ~   x y z { | } ~  x y z { | } ~      =/Generation of HTML documentation for Idris codeLicense : BSD3The Idris Community.None 2349:;<=?M(4A map from namespace names to information about them2All information to be documented about a namespace7Docstrings containing fully elaborated term annotations@All information to be documented about a single namespace member;Internal representation of a fully qualified namespace name#Either an error message or a result YGenerates HTML documentation for a series of loaded namespaces and their dependencies.Make an error messageIdrisDoc versionRConverts a Name into a [Text] corresponding to the namespace part of a NS Name.&Retrieves the namespace part of a Name(String to replace for the root namespace Converts a NsName to string form.Fetch info about namespaces and their contentsjRemoves loose interface methods and data constructors, leaving them documented only under their parent.9Whether a Name names something which should be documentedWhether a NsItem should be included in the documentation. It must not be Hidden/Private and filterName must return True for the name. Also it must have Docs -- without Docs, nothing can be done.~Finds all namespaces indirectly referred by a set of namespaces. The NsItems of the namespaces are searched for references.1Gets all namespaces directly referred by a NsItemGReturns an NsDict of containing all known namespaces and their contents!Gets the Accessibility for a Name/Simple predicate for whether an NsItem has DocsPredicate saying whether a Name possibly may have docs defined Without this, getDocs from Idris.Docs may fail a pattern match.Retrieves the Docs for a NameExtracts names referred from a type. The covering of all PTerms ensures that we avoid unanticipated cases, though all of them are not needed. The author just did not know which! TODO: Remove unnecessary cases"Shorter name for extractPTermNames%Helper function for extractPTermNames%Helper function for extractPTermNames%Helper function for extractPTermNamesGenerates the actual HTML output based on info from a NsDict A merge of the new docs and any existing docs located in the output dir is attempted. TODO: Ensure the merge always succeeds. Currently the content of 'docs/<builtins>.html'{ may change between runs, thus not always containing all items referred from other namespace .html files.(Over)writes the  'index.html'Z file in the given directory with an (updated) index of namespaces in the documentationdGenerates a HTML file for a namespace and its contents. The location for e.g. Prelude.Algebra is  basePrelude Algebra.htmlEGenerates a relative filepath for a namespace, appending an extensionmGenerates a HTML type signature with proper tags TODO: Turn docstrings into title attributes more robustly,Generates HTML documentation for a function.aGenerates HTML documentation for any Docs type TODO: Generate actual signatures for interfaces7Generates everything but the actual content of the pageNon-break space characterGReturns a list of namespaces already documented in a IdrisDoc directory?Copies IdrisDoc dependencies such as stylesheets to a directory+ <IState where all necessary information is extracted from.4List of namespaces to generate documentation for.8The directory to which documentation will be written.Name to convertName to retrieve namespace forNsName to convertIState to fetch info from$List of namespaces to fetch info for9Mapping from namespace name to info about its contentsList to remove orphans fromOrphan-free list Name to checkPredicate resultAccessibility to checkPredicate result)Mappings of namespaces and their contentsSet of namespaces to trace'Set of namespaces which has been traced-Set of namespaces to trace and all traced one7The name to get all directly referred namespaces for+IState containing accessibility informationThe Name to retrieve access forThe NsItem to test The resultThe Name to test The result!IState to extract infomation fromName to load Docs forWhere to extract names fromExtracted namesWhere to extract names fromExtracted names&Needed to determine the types of names$All info from which to generate docs=The base directory to which documentation will be written.1Set of namespace names to include in the index=The base directory to which documentation will be written.&Needed to determine the types of names8The name of the namespace to create documentation forThe contents of the namespace=The base directory to which documentation will be written. Namespace to generate a path forExtension suffix&Needed to determine the types of names%Type to generate type declaration forResulting HTML&Needed to determine the types of namesFunction to generate block forResulting HTML&Needed to determine the types of names)Namespace item to generate HTML block forResulting HTML&Namespace name, unless it is the index Inner HTML%The base directory containing the docs+ directory with existing namespace pages=The base directory to which dependencies should be written  ( > Code to elaborate rewrite rules.License : BSD3The Idris Community.None 2349:;<=?M 6Make a rewriting lemma for the given type constructor.If it fails, fail silently (it may well fail for some very complex types. We can fix this later, for now this gives us a lot more working rewrites...)       ?Data structures common to all iPKG file formats.BSD3The Idris Community.None 2349:;<=?  Description of an Idris package. Name associated with a package. )List of packages this package depends on. !Brief description of the package. -Version string to associate with the package. Location of the README file. )Description of the licensing information. Author information. Maintainer information. $Website associated with the package. Location of the source files. &Location of the project's bug tracker. External dependencies. %Object files required by the package. FMakefile used to build external code. Used as part of the FFI process. %List of options to give the compiler. !Source directory for Idris files.  Modules provided by the package. NIf an executable in which module can the Main namespace and function be found. What to call the executable. .Lists of tests to execute against the package. *Default settings for package descriptions.     @&Idris' 'Type Provider' implementation.License : BSD3The Idris Community.None 2349:;<=?M 2Wrap a type provider in the type of type providers \Handle an error, if the type provider returned an error. Otherwise return the provided term.       ABrowse the current namespace.License : BSD3The Idris Community.None 2349:;<=? Find the sub-namespaces of a given namespace. The components should be in display order rather than the order that they are in inside of NS constructors. Find the user-accessible names that occur directly within a given namespace. The components should be in display order rather than the order that they are in inside of NS constructors.    BNone 2349:;<=?  REPL commands Each V should be either a type declaration (at most one) or a clause defining the same name. -If false, use prover, if true, use elab shellA A A  @ C{Code related to Idris's reflection system. This module contains quoters and unquoters along with some supporting datatypes.License : BSD3The Idris Community.None 2349:;<=?M Prefix a name with the Language.Reflection namespace Prefix a name with the Language.Reflection.Elab namespace 1Reify tactics from their reflected representation /Reify terms from their reflected representation 3Reify raw terms from their reflected representation +7Create a reflected call to a named function/constructor ,:Lift a term into its Language.Reflection.TT representation -;Lift a term into its Language.Reflection.Raw representation 1Convert a reflected term to a more suitable form for pattern-matching. In particular, the less-interesting bits are elaborated to _ patterns. This happens to NameTypes, universe levels, names that are bound but not used, and the type annotation field of the P constructor. 5FCreate a reflected TT term, but leave refs to the provided name intact :Elaborate a name to a pattern. This means that NS and UN will be intact. MNs corresponding to will care about the string but not the number. All others become _. @BReflect the environment of a proof into a List (TTName, Binder TT) B<Reflect an error into the internal datatype of Idris -- TODO HIdris tuples nest to the right LReflect a file context PAttempt to reify a report part from TT to the internal representation. Not in Idris or ElabD monads because it should be usable from either. ZsApply Idris's implicit info to get a signature. The [PArg] should come from a lookup in idris_implicits on IState. \\Build the reflected function definition(s) that correspond(s) to a provided unqualifed name ]]Build the reflected datatype definition(s) that correspond(s) to a provided unqualified namev                           ! " # $ % & ' ( ) * + , - . / 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 dv                           ! " # $ % & ' ( ) * + , - . / 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 dv                           ! " # $ % & ' ( ) * + , - . / 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 da                                    ! " # $ % & ' ( ) * + , - . / 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 dD5A parser for the CmdOptions for the Idris executable.BSD3The Idris Community.None 2349:;<=? n o p q r s t u v w n o p q r s t u v w n o p q r s t u v w n o p q r s t u v wE!NFData instances for Idris' typesLicense : BSD3The Idris Community.None 2349:;<=?< x y z { | } ~  <  ~ } | { z y x< x y z { | } ~  FElaborator utilities.License : BSD3The Idris Community.None 2349:;<=?M PGet the list of (index, name) of inaccessible arguments from an elaborated type FGet the list of (index, name) of inaccessible arguments from the type. Check that the result of type checking matches what the programmer wrote (i.e. - if we inferred any arguments that the user provided, make sure they are the same!) XReturn whether inferred term is different from given term (as above, but return a Bool) Check a PTerm against documentation and ensure that every documented argument actually exists. This must be run _after_ implicits have been found, or it will give spurious errors. Treat a name as a parameter if it appears in parameter positions in types, and never in a non-parameter position in a (non-param) argument type. \Find the type constructor arguments that are parameters, given a list of constructor types.Parameters are names which are unchanged across the structure. They appear at least once in every constructor type, always appear in the same argument position(s), and nothing else ever appears in those argument positions. Mark a name as detaggable in the global state (should be called for type and constructor names of single-constructor datatypes) Gather up all the outer qs and n=s in an expression and reintroduce them in a canonical order' 9the name of the family that we are finding parameters for5the type of the type constructor (normalised already)the declared constructor types ' ' ' GCode to elaborate terms.License : BSD3The Idris Community.None$2349:;<=?M[ Function part of application can't pattern match #The term resulting from elaboration #Information about new metavariables 3Deferred declarations as the meaning of case blocks 5The potentially extended context from new definitions )Meta-info about the new type declarations !Saved highlights from elaboration The new global name counter \Using the elaborator, convert a term in raw syntax to a fully elaborated, typechecked term.]If building a pattern match, we convert undeclared variables from holes to pattern bindings.4Also find deferred names in the term and their types =Build a term autogenerated as an interface method definition.o(Separate, so we don't go overboard resolving things that we don't know about yet on the LHS of a pattern def) return whether arguments of the given constructor name can be matched on. If they're polymorphic, no, unless the type has beed made concrete by the time we get around to elaborating the argument. Returns the set of declarations we need to add to complete the definition (most likely case blocks to elaborate) as well as declarations resulting from user tactic scripts (%runElab) BUse the local elab context to work out the highlighting for a name9Compute the appropriate name for a top-level metavariable RDo the left-over work after creating declarations in reflected elaborator scripts1    1    1           H$Transformations for elaborate terms.License : BSD3The Idris Community.None 2349:;<=?M    ICode to elaborate values.License : BSD3The Idris Community.None 2349:;<=?MqElaborate a value, returning any new bindings created (this will only happen if elaborating as a pattern clause)Try running the term directly (as IO ()), then printing it as an Integer (as a default numeric tye), then printing it as any Showable thingJ#Code to run the elaborator process.License : BSD3The Idris Community.None 2349:;<=?KCode to elaborate types.License : BSD3The Idris Community.None 2349:;<=?MIElaborate a top-level type declaration - for example, "foo : Int -> Int". The precise location of the nameLCode to elaborate clauses.License : BSD3The Idris Community.None 2349:;<=?M\Elaborate a collection of left-hand and right-hand pairs - that is, a top-level definition.Find staticY applications in a term and partially evaluate them. Return any new transformation rulesChecks if the clause is a possible left hand side. NOTE: A lot of this is repeated for reflected definitions in Idris.Elab.Term One day, these should be merged, but until then remember that if you edit this you might need to edit the other version...!HReturn the elaborated LHS/RHS, and the original LHS with implicits added"3Apply a transformation to all RHSes and nested RHSs  !"#  !"#  !"#  !"#M"Code to elaborate data structures.License : BSD3The Idris Community.None 2349:;<=?M$$$$NCode to elaborate instances.License : BSD3The Idris Community.None 2349:;<=?MFImplicitly bind variables from the implementation head in method typesPropagate interface parameters to method bodies, if they're not already there, and they are needed (i.e. appear in method's type)Check a given method definition is injective, if the interface info says it needs to be. Takes originally written decl and the one with name decoration, so we know which name to look up.% phase constraints$parent dictionary names (optionally)  the interface "precise location of interface name *interface parameters (i.e. implementation) =Extra arguments in scope (e.g. implementation in where block)full implementation type explicit name%%%OCode to elaborate interfaces.License : BSD3The Idris Community.None 2349:;<=?MEGet the method declaration name corresponding to a user-provided name:Get the docstring corresponding to a member, if one existsvIn a top level type for a method, expand all the method names' namespaces so that we don't have to disambiguate later(Find the determining parameter locations &Superclass constraints Parameters determining params interface body %implementation ctor name and location implementation ctor docs&&&P!Code to elaborate type providers.License : BSD3The Idris Community.None 2349:;<=?M(Elaborate a type provider((((QCode to elaborate records.License : BSD3The Idris Community.None 2349:;<=?M)Elaborate a record declaration-Creates and elaborates a projection function./Creates and elaborates an update function. If optionalE is true, we will not fail if we can't elaborate the update function.Post-fixes a name with "_in".4Creates a PArg with a given plicity, name, and term.Machine name "rec".CCreates an PArg from a plicity and a name where the term is a PRef. ) +The documentation for the whole declaration"The name of the type being defined-The precise source location of the tycon name Parameters Parameter Docs Fields Constructor Name Constructor Doc Constructor SyntaxInfoRecord type name ParametersFieldsConstructor Name Target type 'Name of the argument in the constructorParameter namesProjection NameProjection PlicityProjection TypeProjection DocumentationProjection SyntaxInfo Projection target type Data constructor tame $Placeholder Arguments to constructor All Field Names Argument Index 'Name of the argument in the constructorParameter names Field Name Field Plicity Field TypeField DocumentationField SyntaxInfo Projection Source Type Data Constructor Name Arguments to constructor  All fields Argument IndexOptional)) )RCode to elaborate declarations.License : BSD3The Idris Community.None 2349:;<=?M*;Top level elaborator info, supporting recursive elaboration+'Return the elaborated term which calls main,Elaborate primitives*+,-./*+,-./*+,-./*+,-./S4Core representations and code to generate IBC files.License : BSD3The Idris Community.None 2349:;<=?0When IBC is being loaded - we'll load different things (and omit different structures/definitions) depending on which phase we're in.1when building the module tree2Bwhen loading modules for the REPL Bool = True for top level module5*Load an entire package from its index file7QWrite a package index containing all the imports in the current IState Used for  ':search'7 of an entire package, to ensure everything is loaded.      !"#$%&'()*+,-./0123456789:;<012=>340True = reexport, False = make everything private5?@A67BCDEF ReexportingGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh Reexporting?ijklmnopqrstuvwx89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi0123456745673012u4      !"#$%&'()*+,-./0123456789:;<012=>345?@A67BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiTIdris' parser.License : BSD3The Idris Community.None*2349:;<=?IM6uParses module definition % ModuleHeader ::= DocComment_t? 'module' Identifier_t ';'?; vParses an import statement  Import ::= 'import' Identifier_t ';'?; wParses program source  Prog ::= Decl* EOF; xParses a top-level declaration Decl ::= Decl' | Using | Params | Mutual | Namespace | Interface | Implementation | DSL | Directive | Provider | Transform | Import! | RunElabDecl ; z9Parses a top-level declaration with possible syntax sugar IDecl' ::= Fixity | FunDecl' | Data | Record | SyntaxDecl ; ~IParses a syntax extension declaration (and adds the rule to parser state)  SyntaxDecl ::= SyntaxRule;  Extend an 3' with a new syntax extension. See also .Like , but no effect on the IBC.%Parses a syntax extension declaration SyntaxRuleOpts ::= term | ;  !SyntaxRule ::= SyntaxRuleOpts? syntax SyntaxSym+ '=' TypeExpr Terminator; SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; GParses a syntax symbol (either binding variable, keyword or expression) SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; 8Parses a function declaration with possible syntax sugar  FunDecl ::= FunDecl'; Parses a function declaration } FunDecl' ::= DocComment_t? FnOpts* Accessibility? FnOpts* FnName TypeSig Terminator | Postulate | Pattern | CAF ; 4Parses a series of function and accessbility options 'FnOpts ::= FnOpt* Accessibility FnOpt* Parses a function option  FnOpt ::= total | partial | covering |   | %  no_implicit | %  assert_total | %  error_handler | %  reflection | %  '[' NameTimesList? ']' ;  NameTimes ::= FnName Natural?; BNameTimesList ::= NameTimes | NameTimes ',' NameTimesList ; Parses a postulate Postulate ::= DocComment_t? = FnOpts* Accesibility? FnOpts* FnName TypeSig Terminator ; Parses a using declaration  Using ::= W6 '(' UsingDeclList ')' OpenBlock Decl* CloseBlock ; Parses a parameters declaration  Params ::=  parameters5 '(' TypeDeclList ')' OpenBlock Decl* CloseBlock ; Parses an open block>Parses a mutual declaration (for mutually recursive functions)  Mutual ::=  OpenBlock Decl* CloseBlock ; Parses a namespace declaration Namespace ::= + identifier OpenBlock Decl+ CloseBlock ; ,Parses a methods block (for implementations)  ImplementationBlock ::= 'where' OpenBlock FnDecl* CloseBlock ;Parses a methods and implementations block (for interfaces) >MethodOrImplementation ::= FnDecl | Implementation ; InterfaceBlock ::= 'where'? OpenBlock Constructor? MethodOrImplementation* CloseBlock ; Parses an interface declaration ,InterfaceArgument ::= Name | '(' Name : Expr ')' ; -Interface ::= DocComment_t? Accessibility?  interface= ConstraintList? Name InterfaceArgument* InterfaceBlock? ; .Parses an interface implementation declaration ' Implementation ::= DocComment_t? Q ImplementationName? ConstraintList? Name SimpleExpr* ImplementationBlock? ; %ImplementationName ::= '[' Name ']'; Parse a docstringParses a using declaration list <UsingDeclList ::= UsingDeclList' | NameList TypeSig ;  DUsingDeclList' ::= UsingDecl | UsingDecl ',' UsingDeclList' ; .NameList ::= Name | Name ',' NameList ; Parses a using declaration 6UsingDecl ::= FnName TypeSig | FnName FnName+ ; Parse a clause with patterns Pattern ::= Clause; -Parse a constant applicative form declaration CAF ::= 'let' FnName '=' Expr Terminator; Parse an argument expression ArgExpr ::= HSimpleExpr | ; %Parse a right hand side of a function RHS ::= '=' Expr | ?=* RHSName? Expr | Impossible ; RHSName ::= '{' FnName '}'; Parses a function clause :RHSOrWithBlock ::= RHS WhereOrTerminator | with: SimpleExpr OpenBlock FnDecl+ CloseBlock ;  uClause ::= WExpr+ RHSOrWithBlock | SimpleExpr <== FnName RHS WhereOrTerminator | ArgExpr Operator ArgExpr WExpr* RHSOrWithBlock | FnName ConstraintArg* ImplicitOrArgExpr* WExpr* RHSOrWithBlock ;  -ImplicitOrArgExpr ::= ImplicitArg | ArgExpr; /WhereOrTerminator ::= WhereBlock | Terminator; Parses with pattern  WExpr ::= '|' Expr'; Parses a where block WhereBlock ::= 'where' OpenBlock Decl+ CloseBlock; -Parses a code generation target language name  Codegen ::= C | Java |  JavaScript | Node | LLVM |  ; Parses a compiler directive 7 StringList ::= String | String ',' StringList ;  Directive ::= % Directive'; Directive' ::= lib, CodeGen String_t | link+ CodeGen String_t | flag+ CodeGen String_t | include( CodeGen String_t | hide Name | freeze Name | thaw Name | access& Accessibility |  'default' Totality | logging Natural | dynamic" StringList |  ( Name NameList | error_handlers Name NameList | language  | language  |  deprecated Name String | fragile Name Reason ; Parses a totality  Totality ::= partial | total | covering Parses a type provider Provider ::= DocComment_t? % provide' Provider_What? '(' FnName TypeSig ')' with Expr; ProviderWhat ::= proof | term | 'type' |  Parses a transform Transform ::= %  Expr ==> Expr .Parses a top-level reflected elaborator script RunElabDecl ::= %   Expr  Parses an expression from input Parses a constant form input Parses a tactic from input 5Parses a do-step from input (used in the elab shell) Parse module header and imports-There should be a better way of doing this...CCheck if the coloring matches the options and corrects if necessaryUA program is a list of declarations, possibly with associated documentation strings.<Load idris module and show error if something wrong happens Load idris module Load idris code from file ALoad idris source code and show error if something wrong happens Load Idris source codeAdds names to hide list Cmnopqrstuvwxyz{|}~ 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 { | } ~                           ! " # $ % &mnopqrstuvwxyz{|}~Cumnopqrstvwxyz{|}~<mnopqrstuvwxyz{|}~U+Module to provide case split functionality.License : BSD3The Idris Community.None 2349:;<=?MyGiven a variable to split, and a term application, return a list of variable updates, paired with a flag to say whether the given update typechecks (False = impossible) if the flag is z' the splits should be output with the  1 flag, otherwise they should be output as normal{hIf any names are unified, make sure they stay unified. Always prefer user provided name (first pattern)|}~y{ line numbervariable name of file(line number that the type is declared on Function nameUser given nameSource file name%line number that the type is declared Function nameSource file name|}~y{VLBits and pieces for editing source files interactively, called from the REPLLicense : BSD3The Idris Community.None 2349:;<=?M  W5Module chaser to determine cycles and import modules.License : BSD3The Idris Community.None 2349:;<=?Given a module tree, return the list of files to be loaded. If any module has a descendent which needs reloading, return its source, otherwise return the IBC:Strip quotes and the backslash escapes that Haskeline adds already guaranteed builtimport lists (don't reparse)  X#Common utilities used by all modes.BSD3The Idris Community.None 2349:;<=?YParser for the REPL commands.BSD3The Idris Community.None 2349:;<=?//ZBSupport for command-line completion at the REPL and in the prover.License : BSD3The Idris Community.None 2349:;<=?>Get the user-visible names from the current interpreter state.4Get the completion function for a particular command.Complete REPL commands and defined identifiers$Complete tactics and their arguments&The names of current local assumptions[A Hoogle for Idris.License : BSD3The Idris Community.None 2349:;<=?T;The state corresponding to an attempted match of two types.#names which have yet to be resolvedOarguments and interface constraints for each type which have yet to be resolvedthe score so farall names that have been usedA list of interface constraintsGA directed acyclic graph representing the arguments to a function The 1B represents the position of the argument (1st argument, 2nd, etc.)RKeeps a record of the modifications made to match one type signature with anothertransposition of arguments#application of symmetry of equality"directional" modificationsHomogenous tuples)Asymmetric modifications to keep track of<Conduct a type-directed search using a given match predicateOur default search predicate..reverse the edges for a directed acyclic graphCompute a directed acyclic graph corresponding to the arguments of a function. returns [(the name and type of the bound variable the names in the type of the bound variable)]Collect the names and types of all the free variables The Boolean indicates those variables which are determined due to injectivity I have not given nearly enough thought to know whether this is correct+Remove a node from a directed acyclic graph=Could be a functor instance, but let's avoid name overloadinggThis allows the search to stop expanding on a certain state if its score is already too high. Returns > if the algorithm should keep exploring from this state, and z otherwise. Convert a  to an 1B to provide an order for search results. Lower scores are better.Compute the power setTry to match two types together in a unification-like procedure. Returns a list of types and their minimum scores, sorted in order of increasing score.4filter to remove some arguments$\Idris' theorem prover.License : BSD3The Idris Community.None 2349:;<=?MLaunch the proof shell     run with SIGINT handlerrun if mTry finishedrun if mTry was interrupted     ][Bytecode for a stack based VM (e.g. for generating C code with an accurate hand written GC)License : BSD3The Idris Community.None 2349:;<=? reg1 = reg2 reg = const&reg1 = reg2 (same as assign, it seems)reg = constructor, where constructor consists of a tag and values from registers, e.g. (cons tag args) the 'Maybe Reg', if set, is a register which can be overwritten (i.e. safe for mutable update), though this can be ignoredRMatching on value of reg: usually (but not always) there are constructors, hence Int for patterns (that's a tag on which we should match), and the following [BC] is just a list of instructions for the corresponding case. The last argument is for default case. When it's not necessary a constructor in the reg, the Bool should be False, indicating that it's not safe to work with that as with a constructor, so a check should be added. If it's not a constructor, default case should be used.get a value from register, which should be a constructor, and put its arguments into the stack, starting from (base + int1) and onwards; second Int provides arityprobably not usedAsame as CASE, but there's an exact value (not constructor) in reg9just call a function, passing MYOLDBASE (see below) to it!same, perhaps exists just for TCOset reg to (apply string args),-move this number of elements from TOP to BASEset BASE = OLDBASEIreserve n more stack items (i.e. check there's space, grow if necessary)move the top of stack upset TOP = BASE + nset BASE = TOP + nset MYOLDBASE = BASE, where MYOLDBASE is a function-local variable, set to OLDBASE by default, and passed on function call to called functions as their OLDBASE#reg = apply primitive_function args clear regthrow an error&   &   &      ^8The default code generator for Idris, generating C code.License : BSD3The Idris Community.None 2349:;<=?) output file name-generate executable if True, only .o if False include filesextra object files extra compiler flags (libraries)extra compiler flags (anything)%interfaces too (so make a .o instead)!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG) !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG_The JavaScript code generator.License : BSD3The Idris Community.None 2349:;<=?M9HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{3HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{`"Serialise Idris to its IBC format.License : BSD3The Idris Community.None 2349:;<=?aSerialise Idris' IR to JSON.License : BSD3The Idris Community.None 2349:;<=?|}~ !"#$%&'()*+,-./0123456|}~ !"#$%&'()*+,-./0123456b$Coordinates the compilation process.License : BSD3The Idris Community.None 2349:;<=?M72Compile to simplified forms and return CodegenInfo78787878c'Entry Point for the Idris REPL and CLI.BSD3The Idris Community.None 2349:;<=?M: Run the REPL;Run the REPL server<(Run a command on the server on localhost=Run the IdeModeRun IDEMode commands7Show a term for IDEMode with the specified implicitness8The prompt consists of the currently loaded modules, or Idris if there are none-Determine whether a file uses literate syntax:The initial stateThe loaded modulesThe file to edit (with :e);<=^ The handle for communication$^ The continuation ID for the client^ The original IState^ The current open file^ The currently loaded modules^ The command to process>?@:;<=>?@=;<?@:>:;<=>?@d+Main function to decide Idris' mode of use.BSD3The Idris Community.None 2349:;<=?AHow to run Idris programs.BThe main function of Idris that when given a set of Options will launch Idris into the desired interaction mode either: REPL; Compiler; Script execution; or IDE Mode.CZInvoke as if from command line. It is an error if there are unresolved totality problems.&Execute the provided Idris expression.Run the initialisation scriptABC<ABCBCA<ABCmiPKG1 file parser and package description information.License : BSD3The Idris Community.None *2349:;<=?TParses a filename. | | Treated for now as an identifier or a double-quoted string.e.Functionality for working with Idris packages.License : BSD3The Idris Community.None 2349:;<=? E+Run the package through the idris compiler.FType check packages onlybThis differs from build in that executables are not built, if the package contains an executable.G!Check a package and start a REPL.?This function only works with packages that have a main module.HClean Package build filesIGenerate IdrisDoc for package TODO: Handle case where module does not contain a matching namespace E.g. from prelude.ipkg: IO, Prelude.Chars, Builtins/Issue number #1572 on the issue tracker 3https://github.com/idris-lang/Idris-dev/issues/1572JCBuild a package with a sythesized main function that runs the testsKInstall packageW#Invoke a Makefile's default target.X!Invoke a Makefile's clean target.YkMerge an option list representing the command line options into those specified for a package description.This is not a complete union between the two options sets. First, to prevent important package specified options from being overwritten. Second, the semantics for this merge are not fully defined.4A discussion for this is on the issue tracker: 3https://github.com/idris-lang/Idris-dev/issues/1448DECommand line optionsProvide Warnings*(Should we install, Location of iPKG file)FCommand line Options Show Warningsquit on failurePath to ipkg file.GCommand line OptionsPath to ipkg file.HCommand line options.Path to ipkg file.ICommand line options.((Should we install?, Path to ipkg file).JCommand line options.Path to ipkg file.KAlternate install location iPKG file.LMNOPQRSTUVWXYThe command line optionsThe package optionsDEFGHIJKLMNOPQRSTUVWXYDEFGHIJKLMNOPQRSTUVWXYDEFGHIJKLMNOPQRSTUVWXYfBytecode for a register/variable based VM (e.g. for generating code in an imperative language where we let the language deal with GC)License : BSD3The Idris Community.None 2349:;<=?Z[\]^_`Z[\^]_`\]^Z[_`Z[\]^_`nopqrstuvwxyz{|}~kk      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}~~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                               !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5      !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Wabcdeefghijklmnopqrstuvwxyz{|}~X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijjklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                 )                                                                                         ! ! ! ! ! ! ! ! " # $ % % % % % % % % % % % !% "% #% $% %& && '' (' )' *' +' ,' -' .' /' 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+ [+ \+ ]+ ^+ _, `->-E-D-C-B- 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/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1P1J1 1 1 11 1 1 1 1 1 1 1 1 1 1 !1 "1 #1 $1 %1 &1 '1 (1 )1 *1 +1 ,1 -1 .1 /1 01 11 21 31 41 51 61 71 81 91 :1 ;1 <1 =1 >1 ?1 @2 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 K3 L3 M3 N3 O3 P3 Q3 R3 S3 T3 U3 V3 W3 X3 Y3 Z3 [3 \3 ]3 ^4 _4 _4 `4 a4 b4 c4 d4 e4 f5 g5 h5 i5 j5 k5 l6 m6 n6 o6 p7 q7 r7 s7 t7 u7 v7 w7 x7 y7 z7 {7 |7 }7 ~7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 9 9 : ; ; ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < = > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B BB B BB BB B B B B B B B BBBB B B BB B B B C C C C C C C C C C C C C C C C C C C C C C C C C C !C "C #C $C %C &C 'C (C )C *C +C ,C -C .C /C 0C 1C 2C 3C 4C 5C 6C 7C 8C 9C :C ;C <C =C >C ?C @C AC BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC [C \C ]C ^C _C `C aC bC cC dC eC fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC uC vC wC xC yC zC {C |C }C ~C C C C C C C C D D D D D D D D D D E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F G G G G G G G G G G G G G G GGGGGGGGGG G G G G GGGGGGGGGGGGGGGGGGG G!G"G#H$I%I&I'I(I)J*K+K,K-K.K/L0L1L2L3L4L5L6L7L8L9L:M;N<O=O>P?Q@RARBRCRDRERFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzS{S|S}S~SSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUVVVVVVVVWWWWWWWWWWXXXXYYYYZZZ[[[[[[[[[[[[[[\\\]]]]]]]]]]]]]]]] ] ] ] ] ]]]]]]]]]]]]]]]]]]] ]!]"^#_$_%_&_'_(_)`*` `+`,`-`.`/`0a1a2a3a4a5a6a7a8a9a:a;a<a=a>a?a@aAaBaCaDaEaFaGaHaIbJbKb lcLcMcNcOcPcQcRdSdTdUeVeWeXeYeZe[e\e]e^e_e`eaebecedeeefegeheieejff fffffgklhmhnhohphqhrhstuvtuwtuxtuytuztu{tu|tu}tu~tututututututututututu tutututu tutuxtutututu tu tututu tututututututututututututututututututututututututututututututututututututututututututututututututututututututuiijjknkkkkkkkkkk               |                                    ! " # $ % & ' ( ) * + , -  . / 0  1 2 3  4 ; 5 6 7 8 9 : ; < = > ? @ A B C DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop qrstuvwxyz{|}~8 g >rstuvwxyz{|5}LQ5     ""#####%% %%%%%%%%%%%%%))))))))))*******+++++++,,333334444 4 4 4 4 4444444444444444444 4!4"4#4$4%4&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>4?4@4A4B4C4D4E4F4G4H4I4J5K5L5M5N5O5P5Q5R5S5 5T5U5V5%5W5W5X5Y6Z6[6\6]8^8_8`8a9b9c9d9e9f9g9h9i9j9k9l;m;n;o<p<q<r<s<t<u<v<w<x<y=z={=|=}=~==================================={==>>>>>>>>>>@@@JJMMMMMMNNNNNNNOOOOOOOOQQQQQQQQQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS S S SQS S SSSSSSSSSSSSSSSSSSS S!S"S#S$S%S&S'S(S)S*S+S,S-S.S/S0S1S2S3S4S5S6S7S8S9S:S;S<S=U>?U@UAUBUCUDU>URUEUFUGUHUIUJUKULUMUNUOUPUQURUSVTVUVVVWWXWYWZY[Y\Y]Y^Y_Y`YaYbYcYdYeYfYgY.YhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzY{Y|Y}Y~YYYYYYZcZZZZZZZ =ZZ ZZZZZZZZZZZZZ[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\\\\\\\\\\\\\\\\\\\\\\\\^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^__________ _ _ _ _ ___________________ _!_"_#_$_%_&_'_(_)_*_+_,_-_._/_0__1_a2a3a4aa5a6b bKbTbNb7b8b9b:b b;b<b=b>b?b@bAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVdWdXmYmZm[m\m]m m m ^!idris-0.99-AitSaZ6kzUUEbjuOgEuUlu Util.SystemUtil.ScreenSizeUtil.DynamicLinker IRTS.System Idris.Help Idris.Core.TTIdris.Docstrings Idris.UnlitIdris.Core.ConstraintsIdris.Core.CaseTreeIdris.Core.EvaluateIdris.Core.DeepSeqIdris.Core.TypecheckIdris.Core.ProofTermIdris.Core.UnifyIdris.Core.WHNFIdris.Core.ProofStateIdris.Core.ElaborateIdris.Core.Binary Idris.IdeMode Idris.Colours IRTS.Lang IRTS.LangOptsIRTS.JavaScript.ASTIRTS.Defunctionalise IRTS.InlinerIRTS.SimplifiedIRTS.CodegenCommonIdris.AbsSyntaxTreeIdris.ASTUtilsIdris.AbsSyntax Idris.Apropos Idris.DSLIdris.Elab.AsPatIdris.Elab.QuasiquoteIdris.ErrReverseIdris.Delaborate Idris.Inliner Idris.Output Idris.Error IRTS.ExportsIdris.Coverage Idris.ImportsIdris.Directives Idris.InfoIdris.Info.ShowIdris.Parser.HelpersIdris.Parser.OpsIdris.Parser.ExprIdris.Parser.DataIdris.PartialEvalIdris.Primitives Idris.ErasureIdris.ProofSearchIdris.TerminationIdris.TransformsIdris.WhoCallsIdris.Core.ExecuteIdris.DataOpts Idris.DocsIdris.IdrisDocIdris.Elab.RewriteIdris.Package.CommonIdris.ProvidersIdris.REPL.BrowseIdris.REPL.CommandsIdris.ReflectionIdris.CmdOptions Idris.DeepSeqIdris.Elab.UtilsIdris.Elab.TermIdris.Elab.TransformIdris.Elab.ValueIdris.Elab.RunElabIdris.Elab.TypeIdris.Elab.ClauseIdris.Elab.DataIdris.Elab.ImplementationIdris.Elab.InterfaceIdris.Elab.ProviderIdris.Elab.RecordIdris.ElabDecls Idris.IBC Idris.ParserIdris.CaseSplitIdris.Interactive Idris.ChaserIdris.ModeCommonIdris.REPL.ParserIdris.CompletionIdris.TypeSearch Idris.Prover IRTS.Bytecode IRTS.CodegenCIRTS.CodegenJavaScript IRTS.DumpBC IRTS.Portable IRTS.Compiler Idris.REPL Idris.Main Idris.Package IRTS.BCImp Version_idris Util.PrettyUtil.Net Tools_idris Paths_idrisgetFCIdris.Package.ParsercatchIO isWindowstempfile readSource writeSourcewriteSourceTextisATTY withTempdirrmFilesetupBundledCCgetScreenWidth ForeignFunFunfun_name fun_handle DynamicLibLiblib_name lib_handle tryLoadLib tryLoadFn$fEqDynamicLibversiongetDataFileNameCmdArgExprArgNameArgFileArg ModuleArgPkgArgs NumberArg NamespaceArg OptionArg MetaVarArg ColourArgNoArgSpecialHeaderArgConsoleWidthArgDeclArgManyArgs OptionalArgSeqArgs extraHelp $fShowCmdArgEnvTypeTermTypeInfoTI con_namescodata data_opts param_pos mutual_typesDataOptsDataOptCodataDefaultEliminatorDefaultCaseFun DataErrRevDatatypeData d_typename d_typetagd_typed_uniqued_consEnvTTTermSizetermsizeTTPVBindAppConstantProjErased ImpossibleInferredTTypeUType AppStatusComplete MaybeHolesHolesNameTypeBoundRefDConTConnt_tagnt_arity nt_uniqueUCs ConstraintFC uconstraintufc UConstraintULTULEUExpUVarUValBinderLamPiLetNLetHoleGHoleGuessPVarPVTybinderTy binderImpl binderKind binderValenvlen localnames ImplicitInfoImpltcimplementation toplevel_imp machine_genRawVarRBindRAppRTypeRUType RConstantUniverseNullType UniqueTypeAllTypesConstIBIFlChStrB8B16B32B64ATypeStrType WorldTypeTheWorldVoidTypeForgotArithTyATIntATFloatIntTyITFixedITNativeITBigITCharNativeTyIT8IT16IT32IT64Ctxt SpecialNameWhereNWithNImplementationNParentNMethodNCaseNElimNImplementationCtorNMetaNNameUNNSMNSNSymRefTCOKErrorErrErr'Msg InternalMsg CantUnify InfiniteUnify CantConvert CantSolveGoal UnifyScope CantInferTypeNonFunctionType NotEqualityTooManyArguments CantIntroduceNoSuchVariable WithFnType NoTypeDecl NotInjective CantResolve InvalidTCArgCantResolveAlts NoValidAltsIncompleteTerm NoEliminator UniverseError UniqueErrorUniqueKindErrorProgramLineComment InaccessibleUnknownImplicit CantMatchNonCollapsiblePostulateAlreadyDefinedProofSearchFail NoRewritingAt ElaboratingElaboratingArg ProviderError LoadingFailedReflectionErrorReflectionFailedElabScriptDebugElabScriptStuckRunningElabScriptElabScriptStagingFancyMsg Provenance ExpectedType TooManyArgs InferredValGivenVal SourceTermErrorReportPartTextPartNamePartTermPartRawPart SubReportOutputAnnotationAnnName AnnBoundNameAnnConstAnnDataAnnType AnnKeywordAnnFC AnnTextFmtAnnLinkAnnTermAnnSearchResultAnnErr AnnNamespace AnnQuasiquote AnnAntiquoteTextFormattingBoldText ItalicText UnderlineText NameOutput TypeOutput FunOutput DataOutput MetavarOutputPostulateOutputFC'unwrapFCFCNoFCFileFC _fc_fname _fc_start_fc_endfc_fnamefc_startfc_endspanFCfcInemptyFCfileFCtfaildiscardshowSeppmap traceWhentxtstrtnulltheadsUNsNSsMNcaseNamesImplementationNshowCG emptyContextmapCtxttcname implicitablensrootaddDeflookupCtxtName lookupCtxtlookupCtxtExactdeleteDefExact updateDeftoAlistaddAlist intTyName nativeTyWidth isTypeConst constIsType constDocsfmapMB raw_apply raw_unapply internalNS isInjective instantiatesubstV explicitNamespToV addBinderpToVsvToPfinalise pEraseTypesubstpsubst substNames substTerm occurrences noOccurrence freeNamesarityunApplymkAppunListtermSmallerThanforget safeForget forgetEnv safeForgetEnvbindAll bindTyArgs getArgTysgetRetTy substRetTyuniqueNameFrom uniqueName uniqueNameSet uniqueBindersnextNameshowEnv showEnvDbg prettyEnvpureTermweakenTmrefsIn allTTNamespprintTTpprintTTClause pprintRaw bindingOf $fShowConst$fShowTT$fEqTT $fPrettyTTo $fSizedTT$fSizedUniverse $fTermSizeTT $fTermSize[] $fEqNameType $fPrettyNameTypeOutputAnnotation$fSizedNameType$fShowUConstraint$fOrdConstraintFC$fEqConstraintFC $fShowUExp $fSizedUExp $fSizedBinder$fPrettyRawOutputAnnotation $fSizedRaw$fShowUniverse$fPrettyConstOutputAnnotation $fSizedConst $fEqConst$fPrettyArithTyOutputAnnotation $fPrettyNativeTyOutputAnnotation$fShowSpecialName $fShowName$fPretty[]OutputAnnotation$fPrettyNameOutputAnnotation $fSizedName$fShowTC$fPrettyTCOutputAnnotation$fPrettyErr'OutputAnnotation $fShowErr' $fSizedErr'$fSizedErrorReportPart$fAlternativeTC$fApplicativeTC $fMonadPlusTC $fMonadTC$fShowFC $fSizedFC $fShowFC'$fEqFC'$fEqFC $fEqOption$fDataFC $fGenericFC$fOrdFC $fDataFC' $fGenericFC'$fOrdFC'$fShowNameOutput$fEqNameOutput$fGenericNameOutput$fShowTextFormatting$fEqTextFormatting$fGenericTextFormatting$fEqSpecialName$fOrdSpecialName$fDataSpecialName$fGenericSpecialName$fEqName $fOrdName $fDataName $fGenericName$fShowNativeTy $fEqNativeTy $fOrdNativeTy$fEnumNativeTy$fDataNativeTy$fGenericNativeTy $fShowIntTy $fEqIntTy $fOrdIntTy $fDataIntTy$fGenericIntTy $fShowArithTy $fEqArithTy $fOrdArithTy $fDataArithTy$fGenericArithTy $fOrdConst $fDataConst$fGenericConst $fEqUniverse $fOrdUniverse$fDataUniverse$fGenericUniverse$fShowImplicitInfo$fEqImplicitInfo$fOrdImplicitInfo$fDataImplicitInfo$fGenericImplicitInfo $fShowBinder $fEqBinder $fOrdBinder$fFunctorBinder$fFoldableBinder$fTraversableBinder $fDataBinder$fGenericBinder $fShowRaw$fEqRaw$fOrdRaw $fDataRaw $fGenericRaw$fEqUExp $fOrdUExp $fDataUExp $fGenericUExp$fEqUConstraint$fOrdUConstraint$fDataUConstraint$fGenericUConstraint$fShowConstraintFC$fDataConstraintFC$fGenericConstraintFC$fShowNameType $fOrdNameType$fDataNameType$fGenericNameType $fEqAppStatus$fOrdAppStatus$fFunctorAppStatus$fDataAppStatus$fGenericAppStatus$fShowAppStatus$fOrdTT $fFunctorTT$fDataTT $fGenericTT$fShowDatatype$fFunctorDatatype $fEqDatatype $fShowDataOpt $fEqDataOpt$fGenericDataOpt$fShowTypeInfo$fGenericTypeInfo$fShowProvenance$fEqProvenance$fOrdProvenance$fDataProvenance$fGenericProvenance$fShowErrorReportPart$fEqErrorReportPart$fOrdErrorReportPart$fDataErrorReportPart$fGenericErrorReportPart$fEqErr' $fOrdErr' $fFunctorErr' $fDataErr' $fGenericErr'$fEqTC $fFunctorTC$fShowOutputAnnotation$fEqOutputAnnotation$fGenericOutputAnnotationInlineSpace SoftBreak LineBreakEmphStrongCodeLinkImageEntityRawHtmlBlockParaHeader BlockquoteList CodeBlock HtmlBlockHRule Docstring DocStringDocTerm UncheckedCheckedExampleFailing renderDocTermcheckDocstringparseDocstringrenderDocstringoverviewemptyDocstring nullDocstringnoDocs containsText renderHtml annotCode $fShowDocTerm$fGenericDocTerm $fShowInline$fFunctorInline$fFoldableInline$fTraversableInline$fGenericInline $fShowBlock$fFunctorBlock$fFoldableBlock$fTraversableBlock$fGenericBlock$fShowDocstring$fFunctorDocstring$fFoldableDocstring$fTraversableDocstring$fGenericDocstringunlitucheck$fEqVar$fOrdVar $fShowVar $fEqDomain $fOrdDomain $fShowDomainPhase CoverageCheck CompileTimeRunTime ErasureInfoCaseTreeCaseAltCaseAlt'ConCaseFnCase ConstCaseSucCase DefaultCaseSCCaseType UpdatableSharedSC'CaseProjCaseSTerm UnmatchedCaseImpossibleCaseCaseDefsmall namesUsed findCalls findCalls' findUsedArgs simpleCasesubstSCsubstAltmkForce$fTermSizeCaseAlt' $fTermSizeSC' $fShowSC' $fEqCaseType $fOrdCaseType$fShowCaseType$fGenericCaseType$fShowCaseAlt' $fEqCaseAlt' $fOrdCaseAlt'$fFunctorCaseAlt'$fGenericCaseAlt'$fEqSC'$fOrdSC' $fFunctorSC' $fGenericSC' $fShowCaseDef $fShowPhase $fEqPhase $fShowPat$fShowPartition $fShowConType $fEqConType $fShowGroupContext next_tvar definitionsMetaInformationEmptyMIDataMIPReasonOtherItself NotCovering NotPositiveUseUndef ExternalIO BelieveMeMutual NotProductiveTotalityTotal ProductivePartial Generated Injectivity AccessibilityHiddenPublicFrozenPrivateCaseInfocase_inlinablecase_alwaysinline tc_dictionaryCaseDefscases_compiletime cases_runtimeDefFunctionTyDeclOperatorCaseOpQuotequoteValueVPVVVBindVBLetVAppVTypeVUTypeVErased VImpossible VConstantVProjVTmpinitEval normaliseC normaliseAllnormaliseBlocking normalisenormaliseTracetoValue quoteTerm specialisesimplify inlineSmall rt_simplifyunfold isUniverseconvEq'convEq initContext mapDefCtxt ctxtAlist addToCtxt setAccess setInjectivesetTotalsetMetaInformation addCtxtDef addTyDecl addDatatype addCasedefsimplifyCasedef addOperator lookupNames lookupTyNamelookupTyNameExactlookupTy lookupTyExact isCanonical isConName isTConName isDConName canBeDConNameisFnNameisTCDictlookupP lookupP_alllookupDefExact lookupDef lookupNameDef lookupDefAcclookupDefAccExact lookupTotallookupTotalExactlookupInjectiveExact tcReduciblelookupMetaInformationlookupNameTotal lookupVal lookupTyEnvuniqueNameCtxtuniqueBindersCtxt$fShowTotality$fShowAccessibility $fShowDef $fQuoteValue $fEqValue $fShow(->) $fShowValue$fShowEvalState $fShowEvalOpt $fEqEvalOpt$fGenericCaseDefs$fGenericCaseInfo $fGenericDef$fEqAccessibility$fOrdAccessibility$fGenericAccessibility $fShowPReason $fEqPReason$fGenericPReason $fEqTotality$fGenericTotality$fEqMetaInformation$fShowMetaInformation$fGenericMetaInformation $fShowContext$fGenericContext forceDefCtxt$fNFDataCaseAlt' $fNFDataSC'$fNFDataCaseType$fNFDataCaseDefs$fNFDataCaseInfo $fNFDataDef$fNFDataMetaInformation$fNFDataPReason$fNFDataTotality$fNFDataAccessibility $fNFDataTT$fNFDataAppStatus $fNFDataConst$fNFDataArithTy $fNFDataIntTy$fNFDataNativeTy$fNFDataNameType $fNFDataUExp$fNFDataBinder$fNFDataImplicitInfo$fNFDataErrorReportPart $fNFDataErr'$fNFDataConstraintFC$fNFDataUConstraint$fNFDataProvenance $fNFDataFC' $fNFDataFC $fNFDataRaw$fNFDataUniverse$fNFDataSpecialName$fNFDataOutputAnnotation$fNFDataOrdering$fNFDataTextFormatting$fNFDataNameOutput$fNFDataContext $fNFDataName UniqueUseNeverOnceLendOnlyMany convertsCconvertsisHoleerrEnvisTypeconvTyperecheckrecheck_borrowingcheckcheck' checkUnique $fEqUniqueUseGoalGDpremisesgoalType RunTactic' ProofTermrefocus mkProofTerm getProofTermresetProofTermupdateSolvedTermupdateSolvedTerm'updsubst updateSolvedgoalatHolebound_in bound_in_term$fShowBinderPath$fShowTermPath$fShowProofTermFails FailContextfail_sourcelocfail_fn fail_paramFailAtMatchUnify unrecoverable match_unifyunify $fShowFailAt $fEqFailAt$fEqFailContext$fShowFailContext $fShowUInfoWEnvwhnfwhnfArgs $fShowWEnvTacticAttackClaimClaimFnReorderExactFill MatchFillPrepFill CompleteFillRegretSolve StartUnifyEndUnifyUnifyAllCompute ComputeLetSimplify WHNF_ComputeWHNF_ComputeArgsEvalInCheckInIntroIntroTyForallLetBind ExpandLetRewrite InductionCaseTacEquivPatVarPatBindFocusDefer DeferTypeImplementationAutoArg SetInjectiveMoveLast MatchProblems UnifyProblems UnifyGoal UnifyTerms ProofStateUndoQEDPSthnameholesusednsnextnameglobal_nextnameptermptype dontunifyunified notunifieddottedsolvedproblems injectivedeferredimplementationsautospsnamespreviouscontext datatypesplogunifylogdonerecentswhile_elaborating constraint_nsnowElaboratingPSdoneElaboratingAppPSdoneElaboratingArgPSnewProof envAtFocus goalAtFocus dropGiven keepGiven getProvenance processTactic"$fPrettyProofStateOutputAnnotation$fShowProofState $fShowTacticElabElab' ElabStateESproof proofFailexplicit addPSname getPSnames saveState loadState getNameFrom setNextNameinitNextNameFrom transformErrerrAterunAuxerunrunElabexecElabinitElaborator elaborate updateAuxgetAuxunifyLog getUnifyLogprocessTactic'updatePSnow_elaboratingdone_elaborating_appdone_elaborating_argelaborating_app get_context set_context get_datatypes set_datatypesget_global_nextnameset_global_nextnameget_term update_termget_envget_inj get_holes get_usedns get_probs get_recentsis_guess get_guessget_type get_type_val get_deferredcheckInjectiveget_implementations get_autos unique_hole unique_hole'eloggetLogattackclaimclaimFn unifyGoal unifyTermsexactfill match_fill prep_fill complete_fillsolve start_unify end_unify unify_allregretcompute computeLet whnf_computewhnf_compute_argseval_incheck_inintrointroTyforallletbind expandLetrewrite inductioncasetacequivpatvarpatvar'patbindfocusmovelastdotterm get_dottermzipHere matchProblems unifyProblemsdefer deferTypeimplementationArgautoArgsetinj proofstatereorder_claimsqedundo prepare_applyapply match_applyapply'apply2 apply_elab checkPiGoal simple_app infer_appdep_apparg no_errorstry handleErrortry'tryCatchtryWhentryAlltryAll' prunStateTdebugElaboratorqshow dumpprobs$fShowElabState $fBinaryTT $fBinaryUExp$fBinaryNameType$fBinaryUniverse$fBinaryBinder$fBinaryImplicitInfo $fBinaryRaw $fBinaryConst$fBinarySpecialName $fBinaryName $fBinaryFC' $fBinaryFC $fBinaryErr'$fBinaryConstraintFC$fBinaryUConstraint$fBinaryProvenance$fBinaryErrorReportPartIdeModeCommandREPLCompletions InterpretTypeOf CaseSplit AddClauseAddProofClause AddMissing MakeWithBlock MakeCaseBlock ProofSearch MakeLemmaLoadFileDocsForAproposGetOptsSetOpt MetavariablesWhoCallsCallsWhoBrowseNS TermNormaliseTermShowImplicitsTermNoImplicitsTermElabPrintDef ErrString ErrPPrintGetIdrisVersionWhatDocsOverviewFullOptShowImpl ErrContextSExpabletoSExpSExpSexpList StringAtomBoolAtom IntegerAtom SymbolAtomgetNChargetLen sExpToString sexpToCommand parseMessageconvSExp ideModeEpoch $fSExpableFC$fSExpableOutputAnnotation$fSExpableNameOutput$fSExpable(,,,,)$fSExpable(,,,)$fSExpable(,,) $fSExpable(,) $fSExpable[]$fSExpableMaybe$fSExpableName $fSExpableInt$fSExpableInteger $fSExpable[]0$fSExpableBool$fSExpableSExp$fEqSExp $fShowSExp $fShowOpt ColourType KeywordColourBoundVarColourImplicitColourFunctionColour TypeColour DataColour PromptColourPostulateColour ColourTheme keywordColourboundVarColourimplicitColourfunctionColour typeColour dataColour promptColourpostulateColour IdrisColourcolourvivid underlinebolditalic defaultTheme colourisehStartColourise hEndColourise colouriseKwdcolouriseBoundcolouriseImplicit colouriseFun colouriseType colouriseDatacolourisePromptcolouriseKeywordcolourisePostulate$fEqIdrisColour$fShowIdrisColour$fEqColourTheme$fShowColourTheme$fGenericColourTheme$fEqColourType$fShowColourType$fBoundedColourType$fEnumColourTypegetIdrisDataDirgetCC getEnvFlags getLibFlagsgetIdrisLibDirgetIdrisDocDirgetIdrisJSRTSDirgetIdrisCRTSDir getIncFlags LiftStateLSLOptNoInlineLDefsLDeclLFun LConstructorLAltLAlt'LConCase LConstCase LDefaultCaseFTypeFArith FFunction FFunctionIOFStringFUnitFPtr FManagedPtrFCDataFAny FCallTypeFStaticFObject FConstructorPrimFnLPlusLMinusLTimesLUDivLSDivLURemLSRemLAndLOrLXOrLComplLSHLLLSHRLASHRLEqLLtLLeLGtLGeLSLtLSLeLSGtLSGeLSExtLZExtLTrunc LStrConcatLStrLtLStrEqLStrLen LIntFloat LFloatIntLIntStrLStrInt LFloatStr LStrFloatLChIntLIntChLBitCastLFExpLFLogLFSinLFCosLFTanLFASinLFACosLFATanLFSqrtLFFloorLFCeilLFNegateLStrHeadLStrTailLStrCons LStrIndexLStrRev LStrSubstrLReadStr LWriteStr LSystemInfoLForkLPar LExternalLNoOp ExportIFaceExport ExportData ExportFunFDescFConFStrFUnknownFIOFAppLExpLVLAppLLazyAppLLazyExpLForceLLetLLamLProjLConLCaseLConstLForeignLOpLNothingLErrorLVarLocGlob EndiannessNativeBELEaddTagslnameliftAll lambdaLift getNextNameaddFnlift allocUniqueusedArgusedInlsubst $fShowLExp$fShowEndianness$fEqEndianness $fShowLVar$fEqLVar $fShowFDesc $fEqFDesc $fShowExport $fEqExport$fShowExportIFace$fEqExportIFace $fShowPrimFn $fEqPrimFn$fGenericPrimFn$fShowFCallType $fEqFCallType $fShowFType $fEqFType $fShowLAlt' $fEqLAlt'$fFunctorLAlt'$fEqLExp $fShowLOpt$fEqLOpt $fShowLDecl $fEqLDecl inlineAllnextNdoInlineFFIFFICodeFFIArgFFIErrorJSJSRawJSIdent JSFunctionJSTypeJSSeqJSReturnJSAppJSNewJSErrorJSBinOpJSPreOpJSPostOpJSProjJSNull JSUndefinedJSThisJSTrueJSFalseJSArrayJSStringJSNumJSWordJSAssignJSAllocJSIndexJSSwitchJSCond JSTernaryJSParensJSWhileJSFFI JSAnnotationJSDeleteJSClearJSNoop JSConstructorJSWord8JSWord16JSWord32JSWord64JSIntJSFloat JSInteger JSBigZeroJSBigOneJSBigInt JSBigIntExprJSIntTy JSStringTy JSIntegerTy JSFloatTyJSCharTyJSPtrTy JSForgotTyffi compileJS compileJS' jsInstanceOfjsOrjsAndjsMethjsCalljsTypeOfjsEqjsNotEq jsIsNumberjsIsNulljsBigInt jsUnPackBits jsPackUBits8 jsPackUBits16 jsPackUBits32 jsPackSBits8 jsPackSBits16 jsPackSBits32$fShowJSAnnotation $fEqJSType $fEqJSWord$fEqJSAnnotation$fEqJS $fEqJSNum $fEqJSInteger EvalApplyEvalCase ApplyCase Apply2CaseDDefsDDeclDFun DConstructorDAltDConCase DConstCase DDefaultCaseDExpDVDAppDLetDUpdateDProjDCDCaseDChkCaseDConstDForeignDOpDNothingDErrordefunctionalisegetFnaddAppseEVALtoConstoConsA mkApplyCasemkEvalmkApplymkApply2declaregenArgsmkFnCon mkUnderCon mkBigCasegroupsOf dumpDefuns $fShowDExp $fShowDAlt$fEqDAlt$fEqDExp $fShowDDecl $fEqDDeclinlineinlevalDSDeclSFunSAltSConCase SConstCase SDefaultCaseSVSAppSLetSUpdateSConSCaseSChkCaseSProjSConstSForeignSOpSNothingSError simplifyDefs $fShowSAlt $fShowSDecl CodeGenerator CodegenInfo outputFile outputType targetTriple targetCPUincludes importDirs compileObjs compileLibs compilerFlags debugLevel simpleDecls defunDecls liftDecls interfaces exportDecls OutputTypeObject ExecutableDbgLevelNONEDEBUGTRACE $fEqDbgLevel$fEqOutputType$fShowOutputType$fGenericOutputType SyntaxInfoSynusing syn_params syn_namespaceno_imp imp_methods decoration inPatternimplicitAllowedconstraintAllowedmaxline mut_nestingdsl_infosyn_in_quasiquote syn_toplevelwithAppAllowedUsing UImplicit SyntaxRulessyntaxRulesListSSymbolKeywordSymbolBindingExpr SimpleExprSyntaxRuleDeclRule SynContext PatternSyntax TermSyntax AnySyntaxDSLDSL'dsl_bind dsl_applydsl_puredsl_var index_first index_next dsl_lambdadsl_letdsl_piOptInfoOptimise inaccessible detaggable forceableFnInfo fn_paramsTIData TIPartial TISolution RecordInfoRIrecord_parametersrecord_constructorrecord_projections InterfaceInfoCIimplementationCtorNameinterface_methodsinterface_defaults"interface_default_super_interfacesinterface_impparamsinterface_paramsinterface_constraintsinterface_implementationsinterface_determinersPArgArgOpt AlwaysShow HideDisplayInaccessibleArg UnknownImpPArg'PImpPExp PConstraint PTacImplicitpriority machine_infargoptspnamegetTm getScriptPDoPDo'DoExpDoBindDoBindPDoLetDoLetPPTacticPTactic'IntrosRefineDoUnifyUnfocus MatchRefineLetTacLetTacTyTrivialTCImplementationTryTSeq ApplyTactic ByReflectionReflectGoalTypeTCheckTEvalTDocStrTSearchSkipTFailQedAbandonSourceFCPAltType ExactlyOne FirstSuccess TryImplicitPTermPQuotePRef PInferRefPPatvarPLamPPiPLetPTypedPAppPWithAppPAppImplPAppBind PMatchApp PIfThenElsePCasePTrue PResolveTCPRewritePPairPDPairPAs PAlternativePHiddenPType PUniversePGoal PConstant PlaceholderPDoBlockPIdiomPMetavarPProofPTactics PElabError PImpossiblePCoercedPDisamb PUnifyLog PNoImplicits PQuasiquotePUnquote PQuoteNamePRunElab PConstSugarPunInfoIsTypeIsTerm TypeOrTermPClausePDataPDeclPData' PDatadecl PLaterdecld_name d_name_fcd_tconPClause'PWithPClauseRPWithRElabDEState case_decls delayed_elab new_tyDecls highlighting auto_bindsimplicit_warningsRDeclInstructions RTyDeclInstrsRClausesInstrsRAddImplementationRDatatypeDeclInstrsRDatatypeDefnInstrs DirectiveDLibDLinkDFlagDIncludeDHideDFreezeDThaw DInjective DSetTotalDAccessDDefaultDLogging DDynamicLibs DNameHintDErrorHandlers DLanguage DDeprecateDFragileDAutoImplicitsDUsedPDecl'PFixPTy PPostulatePClausesPCAFPParamsPOpenInterfaces PNamespacePRecord PInterfacePImplementationPDSLPSyntaxPMutual PDirective PProvider PTransform PRunElabDecl ProvideWhat ProvideWhat'ProvTerm ProvPostulateFnOptsFnOpt InlinableTotalFn PartialFn CoveringFn AllGuarded AssertTotal DictionaryOverlappingDictionaryImplicit NoImplicitCExport ErrorHandler ErrorReverse Reflection Specialise UnfoldIface ConstructorAutoHint PEGeneratedStaticFnPlicityImpExp ConstraintTacImppargoptspstaticpparampscoped pinsourcepscriptStaticDynamicFixDeclFixFixityInfixlInfixrInfixNPrefixNprecREPLPort DontListen ListenPortFilenameQuietNoBanner ColourREPLIdemode IdemodeSocketShowAllShowLibs ShowLibDir ShowDocDirShowIncsShowPkgsShowLoggingCats NoBasePkgs NoPrelude NoBuiltinsNoREPLOLoggingOLogCatsOutput InterfaceTypeCase TypeInType DefaultTotalDefaultPartial WarnPartial WarnReach EvalTypes NoCoverageVerbosePort IBCSubDir ImportDir SourceDirPkgBuild PkgInstallPkgCleanPkgCheckPkgREPL PkgDocBuild PkgDocInstallPkgTestPkgIndexWarnOnlyPkgBCAsm DumpDefun DumpCases UseCodegen CodegenArgsOutputTy ExtensionInterpretScriptEvalExpr TargetTriple TargetCPUOptLevelAddOpt RemoveOptClient ShowOrigErr AutoWidth AutoSolveUseConsoleWidthDumpHighlights DesugarNatsNoElimDeprecationWarningsNoOldTacticDeprecationWarnings ElabShellCmdEQEDEAbandonEUndo EProofState EProofTermEEvalECheckESearchEDocStrLogCatIParseIElabICodeGenIErasure ICoverageIIBC OutputFmt HTMLOutput LaTeXOutput HowMuchDocsFullDocs OverviewDocsIRFormat IBCFormat JSONFormatCodegenViaBytecodeIdrisIBCWriteIBCFixIBCImp IBCStatic IBCInterface IBCRecordIBCImplementationIBCDSLIBCDataIBCOpt IBCMetavar IBCSyntax IBCKeyword IBCImport IBCImportDir IBCSourceDirIBCObjIBCLib IBCCGFlagIBCDyLib IBCHeader IBCAccessIBCMetaInformationIBCTotal IBCInjectiveIBCFlags IBCFnInfoIBCTrans IBCErrRevIBCCGIBCDoc IBCCoercionIBCDef IBCNameHint IBCLineAppIBCErrorHandlerIBCFunctionErrorHandler IBCPostulate IBCExternIBCTotCheckErrIBCParsedRegion IBCModDocsIBCUsage IBCExport IBCAutoHint IBCDeprecate IBCFragile IBCConstraintCGInfocallsallCallsscgusedpos UsageReasonSCGEntry SizeChangeSmallerSameBiggerUnknownIStatett_ctxtidris_constraints idris_infixesidris_implicits idris_staticsidris_interfacesidris_openimpls idris_records idris_dslsidris_optimisationidris_datatypesidris_namehints idris_patdefs idris_flagsidris_callgraphidris_docstringsidris_moduledocsidris_tyinfodata idris_fninfoidris_transformsidris_autohintsidris_totcheckidris_defertotcheckidris_totcheckfail idris_options idris_nameidris_lineappsidris_metavarsidris_coercions idris_errRev syntax_rulessyntax_keywordsimported idris_scprims idris_objs idris_libs idris_cgflags idris_hdrsidris_imported proof_listerrSpanparserWarnings lastParse indent_stack brace_stack lastTokenSpanidris_parsedSpan hide_listdefault_access default_total ibc_write compiled_soidris_dynamic_libsidris_language_extensionsidris_outputmodeidris_colourReplidris_colourThemeidris_errorhandlers idris_nameIdxidris_function_errorhandlersmodule_aliasesidris_consolewidthidris_postulates idris_externsidris_erasureUsedidris_whocallsidris_callswhoidris_repl_defs elab_stack idris_symbols idris_exportsidris_highlightedRegionsidris_parserHighlightsidris_deprecatedidris_inmodule idris_ttstats idris_fragileDefaultTotalityDefaultCheckingTotalDefaultCheckingPartialDefaultCheckingCovering ConsoleWidthInfinitelyWideColsWideAutomaticWidth OutputMode RawOutputIdeMode LanguageExt TypeProvidersErrorReflection Optimisation PETransformPPOption ppopt_implppopt_desugarnats ppopt_pinames ppopt_depthIOption opt_logLevel opt_logcats opt_typecaseopt_typeintype opt_coverage opt_showimpopt_errContextopt_repl opt_verbose opt_nobanner opt_quiet opt_codegen opt_outputTy opt_ibcsubdiropt_importdirsopt_sourcedirs opt_tripleopt_cpu opt_cmdline opt_origerr opt_autoSolveopt_autoImport opt_optimiseopt_printdepth opt_evaltypesopt_desugarnats opt_autoimplsElabInfoEInfoparamsinblockliftname namespaceelabFC constraintNSpe_depth rhs_trans rec_elabDeclElabWhatETypesEDefnsEAlltoplevel toplevelWith eInfoNames defaultOptsdefaultOptimisedefaultPPOptionverbosePPOptionppOption ppOptionIstprimDefs idrisInit catchError throwError strLogCat codegenCats parserCatselabCatsloggingCatsStr is_scopedimplimpl_gen forall_impforall_constraintexpl expl_param constrainttacimpl inlinable dictionary initEStatehighlightSource mapPDataFC mapPDeclFCdeclared tldeclareddefinedupdateNupdateNs mapPTermFCmapPTpimppexppconstptacimp highestFC syntaxNames syntaxSymbolsemptySyntaxRulesupdateSyntaxRulesinitDSL defaultSyntaxexpandNSbiprimfcinferTyinferCon inferDecl inferOptsinfTerminfP getInferTerm getInferType primNamesunitTyunitConfalseDocfalseTypairTypairConupairTyupairConeqTyeqConeqDoceqDecl eqParamDoceqOpts modDocNamesigmaTysigmaConpiBindpiBindpannotationColourconsoleDecorateisPostulateName prettyImp prettyIst pprintPTermbasename isHoleName containsHole prettyNameshowCImpshowDImp showDecls showDeclImpgetImpsgetExps getShowArgs getConstsgetAllshowNameshowTm showTmImpls showTmOpts getPArity allNamesIn boundNamesInimplicitNamesInnamesIn usedNamesIngetErasureInfo $fSizedPTerm$fPrettyPTermOutputAnnotation $fShowPData'$fShowPClause' $fShowPDecl' $fShowPTerm $fSizedPArg' $fSizedPDo'$fSizedPTactic' $fOrdFixDecl $fShowFixDecl $fShowFixity $fShowIState$fShowElabWhat $fEqElabWhat$fShowPPOption$fShowOptimisation$fEqOptimisation$fGenericOptimisation$fShowLanguageExt$fEqLanguageExt$fReadLanguageExt$fOrdLanguageExt$fGenericLanguageExt$fShowOutputMode$fShowConsoleWidth$fEqConsoleWidth$fGenericConsoleWidth$fShowDefaultTotality$fEqDefaultTotality$fGenericDefaultTotality$fShowSizeChange$fEqSizeChange$fGenericSizeChange $fShowCGInfo$fGenericCGInfo$fShowIRFormat $fEqIRFormat$fGenericIRFormat $fShowCodegen $fEqCodegen$fGenericCodegen $fShowLogCat $fEqLogCat $fOrdLogCat$fGenericLogCat $fEqREPLPort$fGenericREPLPort$fShowREPLPort$fEqOpt $fGenericOpt $fShowIOption $fEqIOption$fGenericIOption $fEqFixity$fGenericFixity $fEqFixDecl$fGenericFixDecl $fShowStatic $fEqStatic $fOrdStatic $fDataStatic$fGenericStatic $fShowFnOpt $fEqFnOpt$fGenericFnOpt$fShowProvideWhat'$fEqProvideWhat'$fFunctorProvideWhat'$fGenericProvideWhat'$fGenericDirective $fEqPunInfo $fShowPunInfo $fOrdPunInfo $fDataPunInfo$fGenericPunInfo $fEqPAltType $fOrdPAltType$fDataPAltType$fGenericPAltType$fShowPTactic' $fEqPTactic' $fOrdPTactic'$fFunctorPTactic'$fFoldablePTactic'$fTraversablePTactic'$fDataPTactic'$fGenericPTactic'$fEqPDo' $fOrdPDo' $fFunctorPDo' $fDataPDo' $fGenericPDo' $fShowArgOpt $fEqArgOpt $fOrdArgOpt $fDataArgOpt$fGenericArgOpt $fShowPArg' $fEqPArg' $fOrdPArg'$fFunctorPArg' $fDataPArg'$fGenericPArg' $fEqPTerm $fOrdPTerm $fDataPTerm$fGenericPTerm $fShowPlicity $fEqPlicity $fOrdPlicity $fDataPlicity$fGenericPlicity$fFunctorPData'$fGenericPData'$fShowElabShellCmd$fEqElabShellCmd$fShowRecordInfo$fGenericRecordInfo $fShowTIData$fGenericTIData $fShowFnInfo$fGenericFnInfo $fShowOptInfo$fGenericOptInfo $fShowDSL' $fFunctorDSL' $fGenericDSL'$fShowSynContext$fGenericSynContext $fShowSSymbol $fEqSSymbol$fGenericSSymbol $fShowUsing $fEqUsing $fDataUsing$fGenericUsing$fShowSyntaxInfo$fGenericSyntaxInfo$fFunctorPDecl'$fGenericPDecl' $fShowSyntax$fGenericSyntax$fFunctorPClause'$fGenericPClause'$fGenericSyntaxRules$fShowIBCWrite$fGenericIBCWrite$fShowInterfaceInfo$fGenericInterfaceInfo$fGenericIStateField fgetState fputState fmodifyState ctxt_lookupist_optimisationopt_inaccessibleopt_detaggable opt_forceable ist_callgraph cg_usedposopts_idrisCmdline known_termsknown_interfacesrepl_definitionsidris_fixities$fCategoryTYPEField EitherErrLeftErrRightOK getContext forCodegengetObjectFiles addObjectFilegetLibsaddLibgetFlagsaddFlagaddDyLibgetAutoImports addAutoImportaddDefinedNamegetDefinedNamesaddTTdumpTTaddHdr addImported addLangExtaddTrans addErrRevaddErasureUsage addExport addUsedNamegetErasureUsage getExportstotcheckdefer_totcheckclear_totchecksetFlagsaddFnOpt setFnInfosetAccessibilitygetFromHideList setTotalitysetInjectivity getTotalitygetCoercionsToaddToCGaddCalls addTyInferredaddTyInfConstraints isTyInferredaddFunctionErrorHandlersgetFunctionErrorHandlers getAllNames getCGAllNames addCGAllNamesallNames addCoercion addDocStr addNameHint getNameHints addDeprecated getDeprecated addFragile getFragile push_estack pop_estackaddImplementation addOpenImpl setOpenImpl getOpenImpl addInterface addRecord addAutoHint getAutoHintsaddIBCclearIBC resetNameIdx addNameIdx addNameIdx' getSymbolgetHdrs getImported setErrSpanclearErrgetSOsetSO getIState putIState updateIState withContext withContext_runIOgetNameaddInternalAppgetInternalApp clearOrigPats clearPTypescheckUndefined isUndefined setContext updateContextaddConstraints addDeferredaddDeferredTyCon addDeferred' solveDeferred getUndefined isMetavarNamegetWidthsetWidthsetDepthtypeDescriptiontype1Doc isetPromptisetLoadedRegion setLogLevel setLogCats setCmdLine getCmdLinegetDumpHighlighting getDumpDefun getDumpCaseslogLevel setAutoImpls getAutoImpls setErrContext errContext getOptimise setOptimise addOptimiseremoveOptimise setOptLeveluseREPLsetREPL showOrigErrsetShowOrigErr setAutoSolve setNoBanner getNoBanner setEvalTypesgetDesugarNatssetDesugarNatssetQuietgetQuiet setCodegencodegen setOutputTyoutputTy setIdeModesetTargetTriple setTargetCPUverbose setVerbose typeInType setTypeInTypecoverage setCoverage setIBCSubDir valIBCSubDir addImportDir setImportDirs allImportDirs addSourceDir setSourceDirs allSourceDirs setColouriseimpShow setImpShow setColourlogLvl logCoverage logErasure logParserlogElab logCodeGenlogIBC logLvlCats cmdOptTypenoErrors setTypeCase expandParams expandParamsDmapsndexpandImplementationScope getPriority addStatics addToUsingaddUsingConstraints addUsingImplsgetUnboundImplicitsimplicit implicit' implicitise addImplPat addImplBoundaddImplBoundInfaddImpladdImpl'aiFnimpInexpArg stripLinearstripUnmatchablemkPApp findStaticstoEither matchClause matchClause' substMatches substMatchsubstMatchShadowsubstMatchesShadowshadow mkUniqueNamesgetFilegetBC getOutput getIBCSubDir getImportDir getSourceDir getPkgDirgetPkg getPkgClean getPkgREPL getPkgCheck getPkgMkDoc getPkgTest getCodegengetCodegenArgsgetConsoleWidth getExecScript getPkgIndex getEvalExpr getOutputTygetLanguageExt getTriplegetCPU getOptLevelgetOptimisation getColour getClientgetPortopt$fMonadEitherErr$fApplicativeEitherErr$fFunctorEitherErraproposaproposModules $fApropos[]$fAproposMaybe $fApropos(,)$fAproposDocstring$fAproposConst $fAproposTT$fAproposBinder $fAproposDef $fAproposName debindAppdslifydesugarmkTTName expandSugarvarunIdiomdebind desugarAsextractUnquotes errReversebugaddrresugar delabSugareddelabdelabMV delabDirectdelabTydelab'delabTy' pprintDelab pprintNoDelab pprintDelabTy pprintErrannName fancifyAnnots inlineDef inlineTermpshowiWarniRender hWriteDocconsoleDisplayAnnotatediPrintTermWithTypeiPrintFunTypes iRenderOutput iRenderResultideModeReturnWithStatusideModeReturnAnnotated iRenderErroriPrintWithStatus iPrintResult iPrintError iputStrLnidemodePutSExpiputGoal warnTotalityprintUndefinedNamesprettyDocumentedIstsendParserHighlightingsendHighlightingwriteHighlightsclearHighlightsrenderExternal$fMonadExceptionExceptTiucheckshowErrreport idrisCatch setAndReportifailierrortclifttctry getErrSpan warnDisamb findExports getExpNamesmkPatTm genClausesvalidCoverageCaserecoverableCoverage IFileTypeIDRLIDRIBCpkgIndexibcPathNoFallback findImport findInPath findPkgIndexinstalledPackages$fShowIFileType $fEqIFileTypedirectiveActiongetIdrisFlagsLibgetIdrisFlagsIncgetIdrisFlagsEnv getIdrisCCgetIdrisVersiongetIdrisVersionNoGitgetIdrisUserDataDirgetIdrisInitScriptgetIdrisHistoryFilegetIdrisInstalledPackagesgetIdrisLoggingCategoriesshowIdrisCRTSDirshowExitIdrisCRTSDirshowIdrisJSRTSDirshowExitIdrisJSRTSDirshowIdrisFlagsLibsshowExitIdrisFlagsLibsshowIdrisDataDirshowExitIdrisDataDirshowIdrisLibDirshowExitIdrisLibDirshowIdrisDocDirshowExitIdrisDocDirshowIdrisFlagsIncshowExitIdrisFlagsIncshowIdrisInstalledPackagesshowExitIdrisInstalledPackagesshowIdrisLoggingCategoriesshowExitIdrisLoggingCategories showIdrisInfoshowExitIdrisInfoIndentPropertyHasLastTokenSpangetLastTokenSpanMonadicParsingIdrisInnerParserrunInnerParser IdrisParser runparser highlightPnoDocCommentHereclearParserWarningsreportParserWarnings parserWarningsimpleWhiteSpaceisEoleolsingleLineCommentmultiLineComment docComment whiteSpace stringLiteral charLiteralnaturalintegerfloat idrisStylecharstringlcharlcharFCsymbolsymbolFCreserved reservedFC reservedHL reservedOp reservedOpFC identifieriName maybeWithNSname initsEndAtmkNameopCharsoperatorLettercommentMarkersinvalidOperatorsoperator operatorFCfileNamelineNum columnNumbindListcommaSeparated pushIndent popIndentindent lastIndentindented indentedBlockindentedBlock1indentedBlockSlookAheadMatches openBlock closeBlock terminatorkeepTerminator notEndApp notEndBlockindentPropHoldsgtPropgtePropeqPropltProplteProp notOpenBracesaccessibility' accessibilityaddAccaccData fixErrorMsgcollect$fHasLastTokenSpanStateT$fTokenParsingStateT$fDeltaParsingStateT$fMonadIdrisInnerParser$fFunctorIdrisInnerParser$fMonadPlusIdrisInnerParser$fApplicativeIdrisInnerParser$fAlternativeIdrisInnerParser$fCharParsingIdrisInnerParser"$fLookAheadParsingIdrisInnerParser$fDeltaParsingIdrisInnerParser$fMarkParsingIdrisInnerParser$fMonoidIdrisInnerParser$fTokenParsingIdrisInnerParser$fParsingIdrisInnerParsertabletoTablebinaryprefixbackticknofixityoperator operatorFrontfnNamefixitycheckDeclFixitycheckNameFixity fixityType TacticArgNameTArgExprTArgAltsTArg StringLitTArg SetOrUpdateFieldSet FieldUpdateSynMatchSynTmSynBindallowImp disallowImp allowConstrfullExpr tryFullExprexpropExprexpr' externalExprsimpleExternalExpr extensions extensionupdateSynMatch internalExpr impossiblecaseExpr caseOptionwarnTacticDeprecation proofExpr tacticsExpr simpleExpr bracketed bracketed' dependentPair bracketedExpr modifyConstalt hsimpleExprdisamb noImplicitsapp implicitArg constraintArg quasiquoteunquote namequote recordTypemkTypetypeExprlambda rewriteTermlet_ let_bindingif_ quoteGoal bindsymbol explicitPi autoImplicitdefaultImplicitnormalImplicit constraintPi implicitPi unboundPiunboundPiNoConstraintpipiOptsconstraintListconstraintList1 typeDeclList tyOptDeclListlistExprdoBlockdo_do_altidiom constantsconstantverbatimStringLiteralstatictacticstactic fullTactic$fShowSynMatchrecordrecordParameterdataIrecordIdataOptsdata_ constructorsimpleConstructordslcheckDSLoverloadpe_apppe_def pe_clauses pe_simple PEArgType ImplicitS ImplicitD ConstraintS ConstraintD ExplicitS ExplicitDUnifiedD partial_evalspecType mkPE_TyDecl mkPE_TermDecl getSpecApps $fEqPEArgType$fShowPEArgTypePrimp_namep_typep_arityp_defp_lexpp_total primitivesperformUsageAnalysis mkFieldName $fShowArg$fEqArg$fOrdArg $fShowVarInfotrivial trivialHoles proofSearch resolveTC MultiPath GuardednessToplevel UnguardedGuardedDelayedcheckAllCoveringcheckIfGuarded checkPositive calcTotality checkTotalitycheckDeclTotalityverifyTotalitybuildSCGdelazydelazy' buildSCG'checkSizeChange mkMultiPathscheckMP allNothingcollapseNothing noPartialcollapse collapse'totalityCheckBlock$fShowGuardedness transformPatstransformPatsWithapplyTransRulesapplyTransRulesWithwhoCallscallsWhoexecute applyOpts$fOptimisableTT$fOptimisableBinder$fOptimisableBinder0$fOptimisableRaw$fOptimisableEither$fOptimisable[]$fOptimisable(,,)$fOptimisable(,)DocsDocs'FunDocDataDoc InterfaceDoc RecordDocNamedImplementationDocModDocFunDoc'FD pprintDocsgetDocspprintConstDocs pprintTypeDoc$fFunctorFunDoc'$fFunctorDocs' generateDocs elabRewriteelabRewriteLemma$fShowParamInfoPkgDescpkgnamepkgdepspkgbrief pkgversion pkgreadme pkglicense pkgauthor pkgmaintainer pkghomepage pkgsourceloc pkgbugtrackerlibdepsobjsmakefile idris_opts sourcedirmodules idris_mainexecout idris_tests defaultPkg $fShowPkgDescProvidedProvide providerTy getProvided$fShowProvided $fEqProvided$fFunctorProvidednamespacesInNS namesInNSCommandQuitHelpEvalNewDefnUndefineCheckCoreDocStrTotCheckReloadWatchLoadChangeDirectory ModImportEditCompileExecuteExecValMetavarsProveAddProofRmProof ShowProofProofs UniversesLogLvl LogCategorySpecWHNF TestInlineDefnMissing DynamicLink ListDynamicPattelabSearch CaseSplitAt AddClauseFromAddProofClauseFromMakeWithMakeCase DoProofSearchUnsetOptNOP SetColourColourOn ColourOffListErrorHandlersSetConsoleWidthSetPrinterDepthBrowseMakeDocWarrantyPPrint TransformInfo DebugInfo DebugUnifyRFunDefn RDefineFun RFunClause RMkFunClauseRMkImpossibleClause RDataDefnRDefineDatatypeRConstructorDefn RConstructor RDatatypeRCtorArgRCtorParameter RCtorField RTyConArg RParameterRIndexRTyDeclRDeclareRFunArgargNameargTy argPlicityerasureRPlicity RExplicit RImplicit RConstraintRErasureRErased RNotErasedrArgOpts rFunArgToPArgreflmtacNreifyreifyApp reifyBoolreifyInt reifyPair reifyListreifyReportPartsreifyTT reifyTTApp reifyUniversereifyRaw reifyRawApp reifyTTNamereifyTTNameAppreifyTTNamespacereifyTTNameType reifyTTBinderreifyTTBinderApp reifyTTConstreifyTTConstApp reifyArithTy reifyNativeTy reifyIntTy reifyTTUExpreflCallreflect reflectRawclaimTyintToReflectedNat reflectFixityreflectTTQuotePatternreflectRawQuotePatternreflectBinderQuotePatternreflectUniversereflectTTQuotereflectRawQuotereflectNameType reflectNamereflectSpecialNamereflectNameQuotePattern reflectBinderreflectBinderQuotemkListreflectConstant reflectUExp reflectEnvreifyEnvrawBoolrawNilrawConsrawList rawPairTyrawPair rawTripleTy rawTriple reflectCtxt reflectErr reflectFCreifyFC fromTTMaybe reflErrNamereifyReportPart reifyErasure reifyPlicity reifyRFunArg reifyTyDecl reifyFunDefnreifyRConstructorDefnreifyRDataDefn envTupleType reflectListgetArgs unApplyRaw buildFunDefnsbuildDatatypesreflectErasurereflectPlicity reflectArgreflectCtorArgreflectDatatypereflectFunClausereflectFunDefn$fShowRErasure$fShowRPlicity $fShowRFunArg $fShowRTyDecl$fShowRTyConArg$fShowRCtorArg$fShowRDatatype$fShowRFunClause$fShowRFunDefn runArgParser pureArgParserparser parseFlags parseVersion preProcOpts parseCodegen parseLogCatsparseConsoleWidth integerReader$fNFDataIState$fNFDataDefaultTotality$fNFDataSyntaxInfo $fNFDataUsing$fNFDataSSymbol$fNFDataSyntax$fNFDataSynContext $fNFDataDSL'$fNFDataTypeInfo$fNFDataOptInfo$fNFDataRecordInfo$fNFDataInterfaceInfo $fNFDataPArg' $fNFDataPDo'$fNFDataPTactic'$fNFDataPAltType $fNFDataPTerm$fNFDataPData'$fNFDataPClause'$fNFDataPunInfo$fNFDataProvideWhat'$fNFDataPDecl'$fNFDataDirective$fNFDataDataOpt $fNFDataFnOpt$fNFDataPlicity$fNFDataArgOpt$fNFDataStatic$fNFDataFixDecl$fNFDataFixity$fNFDataCGInfo$fNFDataLogCat$fNFDataIRFormat$fNFDataCodegen$fNFDataFnInfo$fNFDataSizeChange$fNFDataDocTerm$fNFDataInline $fNFDataBlock$fNFDataIBCWrite$fNFDataOutputType$fNFDataColourTheme$fNFDataOptimisation$fNFDataLanguageExt$fNFDataIOption$fNFDataTIData$fNFDataREPLPort $fNFDataOpt$fNFDataSyntaxRules$fNFDataPrimFn$fNFDataConsoleWidth$fNFDataDocstring$fNFDataOutputMode$fNFDataPortNumber$fNFDataIdrisColour$fNFDataDynamicLib$fNFDataNumWrapper$fNFDataCodeAttr$fNFDataListType$fNFDataOptionsrecheckCrecheckC_borrowingcheckDeprecated checkFragileiderrcheckDef checkAddDefinaccessibleImpsinaccessibleArgs elabCaseBlock checkInferred inferredDiff checkDocs decorateidpbindspbtygetPBtyspsolvepvarsgetFixedInType getFlexInTypegetParamsInTypegetTCinjgetTCParamsInType paramNames getUniqueUsedgetStaticNames getStaticsmkStatic mkStaticTycheckVisibility findParams setDetaggabledisplayWarningspropagateParams orderPatsliftPatsisEmpty hasEmptyPatElabCtxte_inarge_isfn e_guardede_intypee_qq e_nomatching ElabResult resultTermresultMetavarsresultCaseDecls resultContext resultTyDeclsresultHighlighting resultNameElabModeETyDecl ETransLHSELHS EImpossibleERHSbuildbuildTCgetUnmatchable initElabCtxtgoal_polymorphicelabpruneAlt pruneByType isPlausible findHighlight solveAuto solveAutos tcRecoverabletrivial' trivialHoles' proofSearch' resolveTC'collectDeferredcase_ metavarName runElabActionrunTacelaboratingArgErrwithErrorReflectionsolveAllprocessTacticDecls $fEqElabMode elabTransform elabValBindelabVal elabDocTermselabExecelabREPL elabRunElab buildTypeelabType elabType' elabPostulate elabExtern elabClauses forceWithelabPE checkPossiblecheckPossibles findUnique getUnfoldsgetNamesToUnfold elabClausemapRHS mapRHSdeclelabDataelabImplementation elabInterface $fShowMArgTy elabProvider elabRecordrecinfoelabMain elabPrims elabDeclselabDecl elabDecl'IBCPhase IBC_BuildingIBC_REPLhasValidIBCVersionloadIBC loadPkgIndexwriteIBC writePkgIndex$fBinaryIRFormat$fBinaryCodegen$fBinarySSymbol $fBinaryDSL'$fBinarySyntax$fBinarySynContext$fBinaryTypeInfo$fBinaryFnInfo$fBinaryOptInfo$fBinaryRecordInfo$fBinaryInterfaceInfo $fBinaryPArg' $fBinaryPDo'$fBinaryPTactic'$fBinaryPAltType $fBinaryPTerm$fBinaryPunInfo$fBinaryPData'$fBinaryPClause'$fBinarySyntaxInfo $fBinaryUsing$fBinaryProvideWhat'$fBinaryPDecl'$fBinaryPlicity$fBinaryStatic$fBinaryArgOpt$fBinaryFixDecl$fBinaryFixity $fBinaryFnOpt$fBinaryDataOpt$fBinaryMetaInformation$fBinaryTotality$fBinaryPReason$fBinaryAccessibility $fBinaryDef$fBinaryCaseInfo$fBinaryCaseDefs$fBinaryCaseAlt' $fBinarySC'$fBinaryCaseType$fBinaryCGInfo$fBinarySizeChange$fBinaryNumWrapper$fBinaryCodeAttr$fBinaryListType$fBinaryInline $fBinaryBlock$fBinaryDocTerm$fBinaryOptions$fBinaryDocstring$fShowIBCPhase $fEqIBCPhase $fShowIBCFile ImportInfoimport_reexport import_path import_renameimport_namespaceimport_locationimport_modname_location moduleHeaderimport_progdecl internalDecldecl' externalDecldeclExtensions declExtension syntaxDecl addSyntax addReplSyntax syntaxRule syntaxSymfnDeclfnDecl'fnOptsfnOpt postulateusing_ openInterfacemutualimplementationBlockinterfaceBlock interface_implementation docstring usingDeclList usingDeclpatterncafargExprrhsclausewExpr whereBlockcodegen_ directivepLangExttotalityprovider transform runElabDecl parseExpr parseConst parseTacticparseElabShellStep parseImportsfindFC fixColour parseProg loadModule loadModule' loadFromIFile loadSource' loadSourceaddHides splitOnLine replaceSplitsgetUniqnameRoot getClausegetProofClausemkWith nameMissing caseSplitAt addClauseFromaddProofClauseFrom addMissingmakeWithmakeCase doProofSearch makeLemma ModuleTreeMTreemod_pathmod_needsRecheckmod_timemod_depsgetModuleFiles getImports buildTree$fShowModuleTree defaultPort loadInputsbannerwarrantyparseCmd setOptionshelpallHelpreplCompletionproverCompletion$fEqCompletionMode searchByType searchPreddefaultScoreFunction $fMonoidScore$fMonoidAsymMods $fMonoidSided $fOrdScore $fEqAsymMods$fShowAsymMods $fEqSided $fShowSided $fEqScore $fShowScore $fShowStateprover showProof showRunElabBCASSIGN ASSIGNCONSTUPDATEMKCONCASEPROJECT PROJECTINTO CONSTCASECALLTAILCALL FOREIGNCALLSLIDEREBASERESERVEADDTOPTOPBASEBASETOPSTOREOLDOPNULLERRORRegRValLTTmptoBCcleanbcisConstmoveRegassignconCase constCasecaseAltconstAlt defaultAlt $fShowReg$fEqReg$fShowBCcodegenCJSTargetNode JavaScriptcodegenJavaScript codegenNode $fEqJSTargetinterMap serializeReg serializeCaseserializeDefault serializeBC serializedumpBC writePortable $fToJSONReg $fToJSONBC $fToJSONSAlt $fToJSONSExp $fToJSONSDecl $fToJSONDAlt $fToJSONDExp $fToJSONDDecl$fToJSONPrimFn $fToJSONIntTy$fToJSONArithTy $fToJSONConst $fToJSONLAlt'$fToJSONCaseType $fToJSONLVar $fToJSONLExp $fToJSONLOpt $fToJSONLDecl$fToJSONExport $fToJSONFDesc$fToJSONExportIFace $fToJSONName$fToJSONCodegenInfo$fToJSONCodegenFilecompilegeneraterepl startServer runClient idemodeStartproofsprocess replSettingsrunMain idrisMainidris getPkgDescbuildPkgcheckPkgreplPkgcleanPkg documentPkgtestPkg installPkg buildModstestLibrmIBCrmIdxrmExe toIBCFile installIBC installIdx installObjmkDirCmdinPkgDirmake mergeOptionsgitHash isATTYRawPrettyprettySizedsize nestingSize $fSized[] $fSized(,)0annotated-wl-pprint-0.7.0-B6Xo4q6hdW98qIfojQv5XO!Text.PrettyPrint.Annotated.LeijenhPutDocputDocdisplayDecoratedAdisplayDecorated displaySpans displayIOdisplaySdisplay renderCompact renderPretty noAnnotateannotategroupnestingcolumnnest linebreaklinetextemptyalignhangwidth fillBreakrationaldoubleintboolpipeequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><$><+><>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlistDocSpanList SimpleDocSEmptySCharSTextSLine SAnnotStart SAnnotStoplistenOnLocalhostlistenOnLocalhostAnyPorthasBundledToolchaingetToolchainDirbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirWkEnvTT vinstances weakenEnv weakenTmEnvWkEnvWkOption TTypeInTType CheckConvbindTCfailMsgtrunsParentN intTyWidthpToV' itBitsNameshowEnv'InlinesBlocksoptions renderBlocks renderBlock renderList renderInlines renderInlineLineTypeProgBlankCommulLinechkAdjvarsInQueue SolverStatequeue domainStorecons_lhscons_rhsDomain dropUnusedordNubGroupConGroupConTypeCNameCFnCSucCConst PartitionConsVarsPatPConPConst PInferredPVPSuc PReflectedPAnyPTyPat CaseBuilderCSClause directUsefindAllUsedArgsisUsedrunCaseBuildercheckSameTypes isConstTypetoPatstoPatisVarPatisConPat partitionorder orderByInfmatchmixtureconRule caseGroups argsToAltgetVar groupConsvarRuledepattprune stripLambdaseval MkContextEvalOptAtREPLRunTTUnfold EvalStatelimitednextholeblocking finalEntrybindEnv unbindEnvusablefnCountsetBlockdeduct reinstatewknVisUsableUniversespecvevaltfst BinderPathTermPath replaceTop rebuildTerm rebuildBinderfindHolehole updateEnvupdateSolvedPathPTpath subterm_envsubtermupdatesLetTLetVGuessTGuessVTopAppLAppRInBindInScoperefocus'same cantUnifyUResultUOKUPartOKUFailUInfoUIInjs renameBindersrenameBindersTm trimSolutions expandLetshasvboundVshighVenvPos recoverableholeInpatInWDConWTConWPRef StackEntryWVWBindWApp WConstantWProjWTypeWUTypeWErased WImpossibleStackwhnf' whnfArgs'do_whnfquoteEnv RunTacticTStateholeName match_unify'mergeSolutions dropSwapsunify' dropUntilactionqueryaddLogmkPtmap solve_unified updateProv updateError updateRessolveInProblemsmergeNotunifiedupdateNotunifiedsetReadyupdateProblems maybePropsconstTy namespaceOf encodeTerm decodeTerm encodeErr decodeErrescapepSExpatomatomC quotedChar parseSExp receiveString getHexLengthmkSGRcolouriseWithSTXmkColouroverrideIdrisSubDirWithextraLib extraIncludegmpLibghc-prim GHC.ClassesmaxhvarldefssVarmkappmkfappsAltlvar scopecheckfgetfsetfmodify maybe_default isApropostextIndefTypereplaceUnderscore collectAsextract1extract2extractTUnquotesextractPArgUnquotesextractDoUnquotes errorIndent renameMNs pprintTerm pprintTerm' pprintProv pprintErr'showPartaddImplicitDiffsisUNannName'annTmshowScshowqual showbasicexpNamestoIFace toIFaceTyVal toIFaceValtoFDesc toFDescRet toFDescBase toFDescArgs toFDescPrimdeNS getGivenPosmergePosremovePlaceholders mkNewClausesaddMissingConsaddMissingConsSttrimOverlappingdoesFileExist'doesDirectoryExist'srcPathlsrcPathibcPathibcPathWithFallback caseSensitive disambiguate allNamespacesbaseGHC.Base.%parsers-0.12.4-Ddvt2wz9C8q2bnDARyElF3Text.Parser.Combinators mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.State.Classstate Data.OldList\\ integer-gmpGHC.Integer.TypeInteger GHC.TypesIntCharDoubleStringPEDeclinterfaceConstraintconcreteInterface mkNewPatstytotalpartial iopartialintOpsintSCmpsintCmpsintArithintConv bitcastPrim concatWord8 concatWord16 concatWord32 truncWord16 truncWord32 truncWord64aTyNameiCmpiBinOpiUnOpiCoercefBinbfBinbcBinbsBinsBinbsrembsdivbashrbUnbitBinbCmpcmpOpsCmpOptoIntintToIntzextsexttruncintToStrgetIntstrToInt intToFloat floatToInt c_intToChar c_charToInt c_negFloat c_floatToStr c_strToFloatp_fPrim p_floatExp p_floatLog p_floatSin p_floatCos p_floatTan p_floatASin p_floatACos p_floatATan p_floatSqrt p_floatFloor p_floatCeilp_strLen p_strHead p_strTail p_strIndex p_strConsp_strRev p_strSubstr p_cantreduceVarInfoviDepsviFunArgviMethodCondDepSetUseMap minimalUsage buildDepMapVIReasonDepsArgResult forwardChainfindImplementations trivialTCs cantSolveGoalresTC'applyAll applyFnRules applyRule matchTermoccursnames occursBinder namesBinderoccursSCnamesSC occursCaseAlt namesCaseAlt occursDefnamesDef findOccursapplyDataOptRT OptimisableprelhowMuchshowDocpprintFDpprintFDWithTotalitypprintFDWithoutTotalitydocData docInterface docRecorddocFun getPArgNamesNsDictNsInfo FullDocstringNsItemNsNameFailableerrtoNsNamegetNs rootNsStr nsName2Str fetchInfo removeOrphans filterName filterIncludetraceNss referredNssnsDict getAccesshasDoc mayHaveDocsloadDocsextractPTermNamesextract extractPArg extractPDoextractPTactic createDocs createIndex createNsDoc genRelNsPath genTypeHeader createFunDoccreateOtherDocwrappernbspexistingNamespacescopyDependencies nsDocstring nsContents ParamInfoIndexParam ImplicitIndex ImplicitParam findSubstFn rewrite_name getParamInfoisParammkLemmaioretermodprmod elabScriptTymustBeElabScriptEliminatorStatewarnLCelabCon forceArgsaddParamConstraints elabCaseFunimpBind addParamscheckInjectiveDef getHeadVars getTypeIntoImpcheckInjectiveArgsmdec memberDocs expandMethNSfindDetsMArgTyIAEACAelabProjection elabUpdatein_nameasArgrecName asPRefArgelabRecordFunctionsrecRef projectInTypeIBCFilever sourcefileibc_reachablenames ibc_importsibc_importdirsibc_sourcedirs ibc_implicits ibc_fixes ibc_staticsibc_interfaces ibc_recordsibc_implementationsibc_dsls ibc_datatypes ibc_optimise ibc_syntax ibc_keywordsibc_objsibc_libs ibc_cgflagsibc_dynamic_libsibc_hdrsibc_totcheckfail ibc_flags ibc_fninfoibc_cgibc_docstringsibc_moduledocsibc_transforms ibc_errRev ibc_coercions ibc_lineapps ibc_namehintsibc_metainformationibc_errorhandlersibc_function_errorhandlers ibc_metavars ibc_patdefsibc_postulates ibc_externsibc_parsedSpan ibc_usage ibc_exports ibc_autohintsibc_deprecatedibc_defs ibc_total ibc_injective ibc_access ibc_fragileibc_constraints ibcVersioninitIBC makeEntryentries writeArchivemkIBCibcgetEntryunhidetimestampOlderprocessPostulatesprocessExternsprocessParsedSpan processUsageprocessExportsprocessAutoHintsprocessDeprecateprocessFragileprocessConstraintsprocessImportDirsprocessSourceDirsprocessImportsprocessImplicits processInfixprocessStaticsprocessInterfacesprocessRecordsprocessImplementations processDSLsprocessDatatypesprocessOptimise processSyntaxprocessKeywordsprocessObjectFiles processLibsprocessCodegenFlagsprocessDynamicLibsprocessHeadersprocessPatternDefs processDefs processDocsprocessModuleDocs processAccess processFlags processFnInfo processTotalprocessInjectiveprocessTotalityCheckErrorprocessCallgraphprocessCoercionsprocessTransforms processErrRevprocessLineAppsprocessNameHintsprocessMetaInformationprocessErrorHandlersprocessFunctionErrorHandlersprocessMetaVars safeToEnumsplitFalse mergePat' MergeStateMSnamemapinvented addUpdate inventNamemkSupplyvarliststripNS mergeAllPatsmergePat mergeUserImplargTystidy elabNewPatfindPats replaceVar showLHSName showRHSName updateMeta guessBrackets checkProv addBracketextractFileNamelatest getIModTime CommandTableparserCommandsForHelpparserCommandsnoArgCmd nameArgCmdnamespaceArgCmd exprArgCmd metavarArgCmd optArgCmd proofArgCmdpCmdcmdnoArgsexprArggenArgnameArg fnNameArgstrArg moduleArg namespaceArgoptArgproofArgcmd_doccmd_consolewidthcmd_printdepth cmd_execute cmd_dynamic cmd_pprint cmd_compile cmd_addproofcmd_logcmd_catscmd_let cmd_unlet cmd_loadto cmd_colouridChar cmd_apropospackageBasedCmd cmd_searchcmd_proofsearch cmd_refine completeCmdCompletionModeUpTocommands tacticArgsmetavars namespacescompleteWithMode completeWith completeNamecompleteMetaVarcompleteNamespacecompleteOptioncompleteConsoleWidth isWhitespace lookupInHelpcompleteColour completePkgcompleteTacticStateargsAndInterfacesscore usedNames InterfacesArgsDAGScore transposition equalityFlipsasymModsSidedAsymMods searchUsing reverseDag computeDagPusedVars deleteFromDagbothscoreCriterionTruesubsetsmatchTypesBulkleftrightModsargApp interfaceAppinterfaceIntro typeFromDefunLazydeleteFromArgListsided displayScore modifyTypesfindNameInArgsDAGfindName deleteName tcToMaybeinArgTysinterfaceUnifyisInterfaceArgflipEqualitiesElabShellHistoryElabStepLetStepBothStepproverSettingsassumptionNamesproveelabStep dumpStatelifte receiveInputundoStepundoElabproverfcrunWithInterruptelabloopploopenvCtxt checkNameType checkTypeproverFCevalTermdocStrsearch codegenC'headersdebuggccFlagsgccDbgcnamecregtoDecltoCshowCStrbccfcalltoATypetoFType toFunTypec_irtsirts_ccFnSigwrappedbitOp bitCoercesignedTydoOpflUnOpifaceCmkBodyctypecarithcdesccodegenH writeIFace hdr_guard hdr_export genWrappers genDispatcher genWrapper wrapperName getCallback hasCallback CompileInfocompileInfoApplyCasescompileInfoEvalCasescompileInfoNeedsBigIntinitCompileInfo codegenJS_alloptimizeConstructorscollectSplitFunctions splitFunction translateDecl jsFUNPRELUDEjsALLOCMYOLDBASE translateRegtranslateConstant translateChar translateNamejsASSIGN jsASSIGNCONSTjsCALL jsTAILCALL jsFOREIGNjsREBASE jsSTOREOLDjsADDTOP jsTOPBASE jsBASETOPjsNULLjsERRORjsSLIDEjsMKCONjsCASE jsCONSTCASE jsPROJECTjsOP jsRESERVEjsSTACK jsCALLSTACK jsSTACKBASE jsSTACKTOP jsOLDBASE jsMYOLDBASEjsRETjsLOCjsTOPjsPUSHjsPOP genInterface translateBCtoFnType CodegenFileCGFilefileTypecgInfo formatVersionirMainmkDecls showCaseTreesisCondeclArgsmkLDeclirTerm doForeignirTreeirSCirAltrunIdeModeCommandideModeForceTermImplicitsmkPromptlit processNetCmdinitIdemodeSocketidemode splitNameidemodeProcessreloadwatch processInput resolveProof removeProofedit insertScript showTotal showTotalN displayHelp pprintDefhelphead execScript initScriptfilenamePParser parseDescpPkgpClause