9X .      !"#$%&'()*+,-./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{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 !5 "5 #5 $5 %5 &5 '5 (5 )6 *6 +6 ,6 -6 .6 /6 06 16 26 36 47 58 68 78 88 98 :8 ;8 <8 =8 >8 ?9 @9 A9 B9 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? {? |? }? ~? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A B B B B B C D D D D D D E F G H I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J !J "J #J $J %J &K 'L (L )L *L +L ,L -L .L /L 0L 1M 2M 3M 4M 5M 6M 7M 8M 9M :M ;M <M =M >M ?M @M AM BM CM DM EM FM GM HM IM JM KM LM MM NM OM PM QM RM SM TM UM VM WM XM YM ZM [M \M ]M ^M _M `M aM bM cM dM eM fM gM hM iM jM kM lM mM nM oM pM qM rM sM tM uM vM wM xM yM zM {M |M }M ~M M N O O O O O O O O O O O P Q Q Q Q Q Q R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T T T T T T T T U U U U U U U U V V V V W W X X X X X X X X X Y Y Y Z Z Z [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ \ \ \ \ \ \ \ \ \ \ ] ] ] ] ] ] ] !] "] #] $] %] &] '] (] )] *] +] ,] -]c^None -./34579 . / . / . /None -./34579GV  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUU  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTV89:;<=>?34567/012*+,-.()U  !"#$%&'@ABCDEFGHIJKLMNOPQRST#  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU_None -./34579 0 1 0 1 0 1`None -./34579 2 2 2aNone -./34579 3V 4 5 6 7 8 9 :W ; <XV 9 :W ; <X 3V 4 5 6 7 8 9 :W ; <XNone -./34579 =YZ[ > ?\] @^ VWXYZ[\]^ XW[Y\]^ZV =YZ[ > ?\] @^None -./34579`The command takes an expressionaThe command takes a namebThe command takes a filecThe command takes a module named)The command takes a list of package nameseThe command takes a numberf"The command takes a namespace namegThe command takes an optionh The command takes a metavariablei)The command is the colour-setting commandjNo completion (yet!?)k do not uselThe width of the consolem5An Idris declaration, as might be contained in a filen$Zero or more of one kind of argumento#Zero or one of one kind of argumentp(One kind of argument followed by anotherq6Use these for completion, but don't show them in :help_`abcdefghijklmnopq A_`abcdefghijklmnopq_`abcdefghijklmnopq_`abcdefghijklmnopq ANone -./34579rrrrNone -./34579$Idris's default console colour theme B9Compute 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 handle CCSet the colour of a string using POSIX escape codes, with trailing '\STX'? denoting the end (required by Haskeline in the prompt string)*stuvwxyz{|}~ D B C'stuvwxyz{|}~'|}~stuvwxyz{stuvwxyz{| }~ D B CNone -./34579@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 E ENone -./34579;N bNone -./34579 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 { | } ~  F G H I J F G H I J K LNone +-./34579Gm &an environment with de Bruijn indices  normalised, so that they all refer to this environmentData declaration options'Set if the the data-type is coinductive6Set if an eliminator should be generated for data type8Set if a case function should be generated for data typeTerms in the core language. The type parameter is the type of identifiers used for bindings and explicit named references; usually we use TT 1.#named references with type (P for  ParameterC, motivated by McKinna and Pollack's Pure Type Systems Formalized)%a resolved de Bruijn-indexed variable a bindingfunction, function type, argconstantTargument projection; runtime only (-1) is a special case for 'subtract one from BI'an erased term"special case for totality checkingthe type of types at some level.Uniqueness type universe (disjoint from TType)Data constructorType constructorUniverse constraintsStrictly less thanLess than or equal to*Universe expressions for universe checkinguniverse variableexplicit universe levelAll 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  constructor for the  type.A function binding"type annotation for bound variable;A binding that occurs in a function type expression, e.g. (x:Int) -> ... The  flag says whether it was a scoped implicit (i.e. forall bound) in the high level Idris, but otherwise has no relevance in TT.A binding that occurs in a let expressionvalue for bound variableNLet is an intermediate product in the evaluator that's used for temporarily naming locals during reduction. It won't occur outside the evaluator.rA hole in a term under construction in the elaborator. If this is not filled during elaboration, it is an error.A saved TT hole that will later be converted to a top-level Idris metavariable applied to all elements of its local environment.A 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.UA pattern variable (these are bound around terms that make up pattern-match clauses)The type of a pattern binding&}Contexts allow us to map names to things. A root name maps to a collection of things in different namespaces with that name.1xNames are hierarchies of strings, describing scope (so no danger of duplicate names, but need to be careful on lookup).2User-provided name3Root, namespaces4Machine chosen names5Decorated function names6>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.R8Location, bad universe, old domain, new domain, suspectsdNUser-specified message, proof term, goals with context (first goal is focused)f8The error occurred during a top-level elaboration scriptoUsed for error reflectionu&Output annotations for pretty-printingvB^ The name, classification, docs overview, and pretty-printed typew%^ The name and whether it is implicitytype, doc overviewzname, doc overview~A 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 ScFilename:Line and column numbers for the start of the location span8Line and column numbers for the end of the location span%Locations for machine-generated termsLocations with file only/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 onlyReturn True if the argument 13 should be interpreted as the name of a typeclass.xLook 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 typeGet the docstring for a ConstA 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 termFReplace the outermost (index 0) de Bruijn variable with the given termAs , 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.jReplace all non-free de Bruijn references in the given term with references to the name of their binding. Replace references to the given 1/-like id with references to de Bruijn index 0.9Convert several names. First in the list comes out as V 0Replace 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.dReplace every non-free reference to the name of a binding in the given term with a de Bruijn index.As , but in addition to replacing  0#, replace references to the given 1 -like id.As [, but takes a list of (name, substitution) pairs instead of a single name and substitution*Replaces all terms equal (in the sense of (==)%) to the old term with the new term.<Return number of occurrences of V 0 or bound name i the term=Returns true if V 0 and bound name n do not occur in the term'Returns all names used free in the term'Return the arity of a (normalised) typeHDeconstruct an application; returns the function and a list of argumentsxReturns a term representing the application of the first argument (a function) to every element of the second argument.sHard-code a heuristic maximum term size, to prevent attempts to serialize or force infinite or just gigantic termsCast a  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 Q into the given term for each element of the given list of (name, binder) pairs.Like  , but the s are 9 terms instead. The first argument is a function to map TT terms to Binder0s. This function might often be something like , which directly constructs a Binder from a TT term.5Return a list of pairs of the names of the outermost ?-bound variables in the given term, together with their types.?Check whether a term has any hole bindings in it - impure if soPWeaken 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 variable 8Weaken every term in the environment by the given amountGather up all the outer s and =s in an expression and reintroduce them in a canonical orderPretty-print a termPretty-print a raw term.4Pretty-printer helper for the binding site of a name HIgnore source location equality (so deriving classes do not compare FCs)       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       The id to replace The replacement term The term to replace in  Old term  New term template term    8The bound names (for highlighting and de Bruijn indices)The term to be printedBound names, for highlightingThe term to pretty-print^ the bound name^ whether the name is implicit D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Q     &:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghopqrst 123456!"#$%uvwxyz{|}~ijklmn'()*+,-./0789          !"#$%&' ()*+,-./0123456789:;-<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            None -./34579Greflection functioninvariant: lowest tags first<special case for projections/thunk-forcing before inspection error message already checked to be impossible Return 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 argumentsQ                  ?Convert single branches to projections (only useful at runtime)                4                           None -./34579;Check that a list of universe constraints can be satisfied. variables in a constraint             ! "              ! "  None -./34579GvContexts 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 total#The result of totality checking$well-founded arguments% productive95A 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 valuesNONormalise fully type checked terms (so, assume all names/let bindings resolved)O9Normalise everything, whether abstract, private or publicPCAs normaliseAll, but with an explicit list of names *not* to reduceVLike normalise, but we only reduce functions that are marked as okay to inline (and probably shouldn't reduce lets?) 20130908: now only used to reduce for totality checking. Inlining should be done elsewhere.W+Simplify for run-time (i.e. basic inlining)X!Reduce a term to head normal form #Evaluate 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 contextjSGet the list of pairs of fully-qualified names and their types that match some nameknGet the pair of a fully-qualified name and its type, if there is a unique one matching the name used as a key.l"Get the types that match some namem4Get the single type that matches some name preciselyp=Check whether a resolved name is certainly a data constructorq=Check whether any overloading of a name is a data constructor;Create a unique name given context and other existing names $ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL % & ' ( ) * + , - . / 0MNOPQRSTUVWX 1 2 3 4 5 6 7 8 # 9Y :Z[ ;\]^ <_`abcdefgh =ijklmnopqrstuvwxyz{|}~ > ? @ A B C Dp !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~rQRNOPSTWVUX[Z9:;<=./012345678)*+,-#$%&'( !"\^_`abcdefghijklmtuwxvyz]{|~}spqonr@ABCDEFGHIJKL>?MYX $  !"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKL % & ' ( ) * + , - . / 0MNOPQRSTUVWX 1 2 3 4 5 6 7 8 # 9Y :Z[ ;\]^ <_`abcdefgh =ijklmnopqrstuvwxyz{|}~ > ? @ A B C D None  -./34579QForcing the contents of a context, for diagnosing and working around space leaks### None -./34579G None -./34579G EFA zipper over binders, because terms and binders are mutually defined. F@A zipper over terms, in order to efficiently update proof terms. GkReplace the top of a term path with another term path. In other words, "graft" one term path into another. H?Build a term from a zipper, given something to put in the hole. IABuild a binder from a zipper, given something to put in the hole. JFind 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.jRefocus the proof term zipper on a particular hole, if it exists. If not, return the original proof term. K)Is a particular binder a hole or a guess?>Given a list of solved holes, fill out the solutions in a termGiven 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 W, in TT, but takes advantage of knowing not to substitute under Complete applications. L"Apply solutions to an environment. M'Fill out solved holes in a term zipper.- N O P Q R E S T U V W F X Y Z [ \ G H I J ] ^ KThe id to replace The replacement term The term to replace in L M N O P Q R E S T U V W F X Y Z [ \ G H I J ] ^ K L MNone -./34579G _PSmart constructor for unification errors that takes into account the FailContext ` a b c d e f _ g h i j k l m n o p q r   ` a b c d e f _ g h i j k l m n o p q rNone -./34579G 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 reflection current 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%instance arguments (for type classes) unsolved auto implicits with their holes'Local names okay to use in proof searchfor undo s t      u v w x y z { | } ~ !#the name of what's to be elaboratedthe current global context0the value of the idris_datatypes field of IState+the value of the idris_name field of IState the goal type"# $% & ' X      !"#$%&'X     !"#' $%&O s t-      u v w x y z { | } ~ !"# $% & ' None -./34579G6zTransform the error returned by an elaboration script, preserving location information and proof search failure messages.=Modify the auxiliary state>Get the auxiliary state?#Set whether to show the unifier logA4Process a tactic within the current elaborator stateGGet the global contextHrUpdate the context. (should only be used for adding temporary definitions or all sorts of stuff could go wrong)Mget the proof termNmodify the proof termO4get the local context at the currently in focus holeT\Return recently solved names (that is, the names solved since the last call to get_recents)Uget the current goal typeW2Get the guess at the current hole, if there is oneXTypecheck locallyZ-get holes we've deferred for later definition\get instance argument names]get auto argument names^4given a desired hole name, return a unique hole nameXTurn the current hole into a pattern variable with the provided name, made unique if MNaTurn the current hole into a pattern variable with the provided name, but don't make MNs unique.Set the zipper in the proof state to point at the current sub term (This currently happens automatically, so this will have no effect...)KPrepare to apply a function by creating holes to be filled by the argumentsEApply an operator, solving some arguments by unification or matching.EApply an operator, solving some arguments by unification or matching.()*+,-./0123456789:;#the name of what's to be elaboratedthe current global context0the value of the idris_datatypes field of IState+the value of the idris_name field of IState the goal type<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~The operation being appliedWhether arguments are implicitWThe names of the arguments and their holes to be filled with elaborated argument valuesThe operator to applyVFor each argument, whether to attempt to solve it and the priority in which to do soThe operator to applyVFor each argument, whether to attempt to solve it and the priority in which to do so      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*+)(,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None -./34579G      !"#$%&'()*+,-./0123      !"#$%&'()*+,-./012%&'("#$ !     )*+,-./0123 @      !"#$%&'()*+,-./0123None -./34579G 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)50Reduce a *closed* term to weak head normal form. 4 5 4554 4 5 None -./34579N BBlock-level elements.JRepresentation of Idris's inline documentation. The type paramter represents the type of terms that are associated with code blocks.L>The various kinds of code samples that can be embedded in docsQ"Render a term in the documentationRRun 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.SGConstruct a docstring from a Text that contains Markdown-formatted docsT5Convert a docstring to be shown by the pretty-printerUsConstruct a docstring consisting of the first block-level element of the argument docstring, for use in summaries.VThe empty docstringW"Check whether a docstring is emtpyX$Empty documentation for a definitionY%Does a string occur in the docstring?[(Annotate the code samples in a docstring. 6789:;<=>?@ABCDEFGHI JKLMNOPQRS TU VWXYZ[How to annotate code samples&6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[&JKBCDEFGHI6789:;<=>?@ASTVWXUYZ[LMNOPQR 6 789:;<=>?@ABCDEFGHI JKLMNOPQRS TU VWXYZ[None -./34579 \ \\  \ None -./34579G*]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012]^_`abcdefghijklmnopqrstuvwxyz{|}~*hijklmnopqrstudefgabc`vwxy]^_z{|}~]^_`abcdefgh ijklmnopqrstuvwxyz{|}~None -./34579      None -./34579None +-./34579GSyntactic sugar info)Miscellaneous information about functions(a function with a partially defined type.possible solutions to a metavariable in a type"second FC is precise name location"second FC is precise name location))the bool is whether to search recursively@"flag sets whether delay is allowedCHigh level language termsD5Inclusion of a core term into the high-level languageEA reference to a variable. The FC is its precise source location for highlighting. The list of FCs is a collection of additional highlighting locations.FA name to be defined laterGA pattern variableH-A lambda abstraction. Second FC is name span.IH(n : t1) -> t2, where the FC is for the precise location of the variableJ2A let binding (second FC is precise name location)KTerm with explicit typeLe.g. IO (), List Char, length xMBImplicit argument application (introduced during elaboration only)Nimplicitly bound applicationO$Make an application by type matchingPDConditional expressions - elaborated to an overloading of ifThenElseQWA case expression. Args are source location, scrutinee, and a list of pattern/RHS pairsR Unit type..?S.Solve this dictionary by type class resolutionT+"rewrite" syntax, with optional result typeUtA pair (a, b) and whether it's a product type or a pair (solved by elaboration). The list of FCs is its punctuation.VA 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.W@-pattern, valid LHS onlyXH(| A, B, C|). Includes unapplied unique name mappings for mkUniqueNames.YIrrelevant or hidden patternZ type[ Some universe\)quoteGoal, used for %reflection functions] Builtin types^ Underscore_ Do notation`Idiom bracketsb/A metavariable, ?name, and its precise locationc Proof scriptdAs PProof, but no auto solvingeError to report on elaborationf6Special case for declaring when an LHS can't typecheckg5To mark a coerced argument, so as not to coerce twiceh#Preferences for explicit namespacesi/dump a trace of unifications when building termj)never run implicit converions on the termk`(Term [: Term])l~Termm`{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.nU%runElab tm - New-style proof script. Args are location, script, enclosing namespace.obA desugared constant. The FC is a precise source location that will be used to highlight it later.wData declarationxData declarationyThe name of the datatypez1The precise location of the type constructor name{Type constructor| Constructors} Placeholder. for data whose constructors are defined later~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 stateA set of instructions for things that need to happen in IState after a term elaboration when there's been reflected elaboration.Datatype, constructorsThe set of source directives\Top-level declarations such as compiler directives, definitions, datatypes and typeclasses.Fixity declaration3Type declaration (last FC is precise name location)-Postulate, second FC is precise name locationPattern clauseTop level constantData declaration. Params blockJNew namespace, where FC is accurate location of the namespace in the fileRecord declarationType class: arguments are documentation, syntax info, source location, constraints, class name, class name location, parameters, method declarations, optional constructor nameInstance declaration: arguments are documentation, syntax info, source location, constraints, class name, parameters, full instance type, optional explicit name, and definitionsDSL declarationSyntax definition Mutual blockCompiler directive.oType provider. The first t is the type, the second is the term. The second FC is precise highlighting location.WSource-to-source transformation rule. If bool is True, lhs and rhs must be convertibleBFC is decl-level, for errors, and Strings represent the namespaceType provider - what to provide2the first is the goal type, the second is the term$goal type must be Type, so only term=^ an error handler for use with the ErrorReflection extension6^ attempt to reverse normalise before showing in error&#Automatically adjust terminal width'BAutomatically issue "solve" tactic in old-style interactive prover+)Don't show deprecation warnings for %elim,5Don't show deprecation warnings for old-style tactics-5Recognised logging categories for the Idris compiler.@TODO add in sub categories.7 REPL commands;Each vV should be either a type declaration (at most one) or a clause defining the same name.K-If false, use prover, if true, use elab shell~The monad for the main REPL - reading and processing files and updating global state (hence the IO inner monad). type Idris = WriterT [Either String (IO ())] (State IState a))6The name is the special name used to track module docs(The global state used in the Idris monad/All the currently defined names and their termsGA list of universe constraints and their corresponding source locations!Currently defined infix operators.list of lhs/rhs, and a list of missing clausesfmodule documentation is saved in a special MN so the context mechanism can be used for disambiguation#Full application LHS on source lineThe 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)The imported modules'Imported ibc file names, whether public-What was the span of the latest token parsed?Global error handlersSpecific error handlers#How many chars wide is the console?4Function/constructor name, argument position is usedFList 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 instance (instances appear twice; also as a funtion name))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 moduleHow 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 handle 1Send IDE output for some request ID to the handle^ whether to show implicits&^ whether to show names in pi bindingsList of logging categories.show implicits+,automatically apply "solve" tactic in prover,e.g. Builtins+Prelude/normalise types in :tB/Pretty printing options with default verbosity.C0Pretty printing options with the most verbosity.D8Get pretty printing options from the big options record.E7Get pretty printing options from an idris state record.G"The initial state for the compiler[Transform 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 declarationbTransform 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.h+Get the highest FC in a term, if one existsThe 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/associativity8Serialise something to base64 using its Binary instance.4Do the right thing for rendering a term in an IStateMPretty-print a high-level Idris term in some bindings context with infix info Strip away namespace informationUDetermine whether a name was the one inserted for a hole or guess by the delaboratorQCheck whether a PTerm has been delaborated from a Term containing a Hole or GuessEPretty-printer helper for names that attaches the correct annotationsShow Idris name&Show a term with implicits, no colours!Show a term with specific options      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^ pretty printing options^ the term to pretty-print^ pretty printing options9^ the currently-bound names and whether they are implicit.^ names to always show in pi, even if not used^ Fixity declarations^ the term to pretty-printE^ whether the name should be parenthesised if it is an infix operator^ whether to show namespaces;^ the current bound variables and whether they are implicit^ the name to pprint:^ the Idris state, for information about names and colours2^ the bound variables and whether they're implicit^ pretty printing options^ whether to colourise^ the term to show@^ the Idris state, for information about identifiers and colours^ the term to show      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~:;<=23456789>? !"#$%&'()*+,-./01@ABCDE     FG~HI{|}xyz789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw456-./0123JKLMN      !"#$%&'()*+,OPQRSTUVWXYZ~wx}yz{|yz{[vut\]^_`apqrsCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno?@ABbc !"#$%&'()*+,-./0123456789:;<=>        defghijklmnopqrstuvwxyz{|}~          ( !"#$%&'()*+,-./0123456789:;<=>?@ABC,DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw x}yz{|yz{~ B      !"#$%&'()*+,-./01234567@89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None -./34579      None -./34579777None -./34579None -./34579&      !"#$%&'()*&      !"#$%&'()*&      !"#$%&'()*       !"#$%&'()*None -./34579G+,-+,-+,-+,-None -./34579./012345./012345./012345./012345 None -./34579678678678678!None -./345799:;<=>?@ABCDEFGHIIHGFEDCBA@?>=<;:99:;<=>?@ABCDEFGHI"None -./34579GT&^ Recursive?, line, name, hints, depth[1^ the Int is the column count for pretty-printing{aThe version of the IDE mode command set. Increment this when you change it so clients can adapt.PJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xy z { 2JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{2yzghiJKLMNOPQRSTUVWXYZ[\]^_`abcdefxopqrstmnjkl{vuw*JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xy z { #None -./34579G3get the accessibility of a name outside this modulewAdds error handlers for a particular function and argument. If names are ambiguous, all matching handlers are updated.Add a class instance function.8Precondition: the instance should have the correct type.WDodgy hack 1: Put integer instances first in the list so they are resolved by default..Dodgy hack 2: put constraint chasers (@@) lastOA version of liftIO that puts errors into the exception type of the Idris monad5Save information about a name that is not yet defined+Tell clients how much was parsed and loaded 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 1Add 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 type classes). 7Remove functions which aren't applied to anything, which must then be resolved by unification. Assume names resolved and alternatives filled in (so no ambiguity). ;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. BjRename any binders which are repeated (so that we don't have to mess about with shadowing anywhere else).|}~'whether the name is an Integer instance2whether to include the instance in instance searchthe name of the classthe name of the instanceThe 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                         4The categories that the message should appear under.,The Logging level the message should appear."The message to show the developer.  ! " # $ % & ' ( ) * + , - . / 0 1 2 3function being applied #initial arguments (if in a pattern) 4 5 6 7 8 9 : ; < = > ? @ A B C D      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9|}~ D C : ; < = > ? @ A B|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D$None -./34579GINN E F G H I J K L M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH E F G H I J K L M M E F G H I J K LG E F G H I J K L M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH%None -./34579G S$Replace DSL-bound variable in a term N O P Q R S T U N O P Q R S T U N O P Q R S T U N O P Q R S T U&None -./34579G I VJKLMNOPQRS V V I VJKLMNOPQRS'None -./34579G W X W X W X W X(None -./34579 Y9Desugar by changing x@y on lhs to let x = y in ... or rhsTQReplace _-patterns under @-patterns with fresh names that can be used on the RHS YUT Y Y YUT)None -./34579G Z [ \ ]VWXY Z [ \ ] Z [ ] \ Z [ \ ]VWXY*None -./34579G ^ ^ ^ ^+None -./34579G ` Re-add syntactic sugar in a term aDelaborate and resugar a term b$Delaborate a term without resugaringZHow far to indent sub-errors[aActually indent a sub-error - no line at end because a newline can end multiple layers of indent g+Pretty-print a core term using delaboration i"Pretty-print the type of some name\Make sure the machine invented names are shown helpfully to the user, so that any names which differ internally also differ visibly lMAdd extra metadata to an output annotation, optionally marking metavariables. _ ` a b c d e f"implicit arguments to type, if anyuse full names#Don't treat metavariables speciallyZ[ g h i]^_ j`a\bc kde lfgh _ ` a b c d e f g h i j k l k _ b e c a d f l g h i j ` _ ` a b c d e fZ[ g h i]^_ j`a\bc kde lfgh,None -./34579GiA partially evaluated function. pe_app captures the lhs of the new definition, pe_def captures the rhs, and pe_clauses is the specialised implementation. pe_simple is set if the result is always reducible, because in such a case we'll also need to reduce the static argument qSData type representing binding-time annotations for partial evaluation of arguments rImplicit static argument sImplicit dynamic argument tExplicit static argument uExplicit dynamic argument v3Erasable dynamic argument (found under unification) wPartially 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. xSpecialises the type of a partially evaluated TT function returning a pair of the specialised type and the types of expected arguments. yCreates an Idris type declaration given current state and a specialised TT function application type. Can be used in combination with the output of  x.uThis should: specialise any static argument position, then generalise over any function applications in the result. j>Checks if a given argument is a type class constraint argumentkChecks if the given arguments of a type class constraint are all either constants or references (i.e. that it doesn't contain any complex terms). zCreates 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 {1Get specialised applications for a given functionil m n o p q r s t u v w x yjkm z { m n o p q r s t u v w x y z { w { x y z q r s t u v m n o p il m n o p q r s t u v w x yjkm z {-None -./34579G 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 Convert 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. FCreate 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) <Reflect an error into the internal datatype of Idris -- TODO Idris tuples nest to the right Reflect a file context Attempt to reify a report part from TT to the internal representation. Not in Idris or ElabD monads because it should be usable from either. sApply 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 | } ~  v | } ~  v ~  | } a | } ~           .None -./34579nopqr   nopqr /None -./34579 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.    0None -./34579 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.st uvwxyz{|}~  st uvwxyz{|}~1None -./34579GVNDetermine a truncation function depending how much docs the user wants to see WGiven a fully-qualified, disambiguated name, construct the documentation object for it                       2None -./34579          3None -./34579)   ) 4None -./34579G8    2   5None -./34579 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                   ! " # $ % & ' (                   ! " # $ % & ' (                   ! " # $ % & '                   ! " # $ % & ' (6None +-./34579 3GIssue a warning on "with"-terms whose namespace is empty or nonexistent ) * + , - . / 0 1 2 3 ) * + , - . / 0 1 2 3 ) * + , - . / 0 1 2 3 ) * + , - . / 0 1 2 37None -./34579;GN 4 4 4 48None -./34579 9*Get the index file name for a package name 5 6 7 8 9 : ; < = > 5 6 7 8 9 : ; < = > 5 6 7 8 ; < = : > 9 5 6 7 8 9 : ; < = >9None -./34579G A2Wrap a type provider in the type of type providers B\Handle an error, if the type provider returned an error. Otherwise return the provided term. ? @ A B ? @ A B A B ? @ ? @ A B:None -./34579G F-Resolve type classes. This will only pick up normal9 instances, never named instances (which is enforced by ).Find the names of instances that have been designeated for searching (i.e. non-named instances or instances from Elab scripts) C D E Fusing default Intallow metavariables in the goaldepth"top level goal, for error messages)top level function name, to prevent loopstop level elaborator C D E F C D E F C D E F;None -./34579G    G  H G H G H    G  H<None -./34579G I J I J I J I J=None -./34579G K2Compile to simplified forms and return CodegenInfo K L !"#$%&'()* K L K L K L !"#$%&'()*>None -./34579G SPGet the list of (index, name) of inaccessible arguments from an elaborated type TFGet the list of (index, name) of inaccessible arguments from the type. VCheck 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!) WXReturn whether inferred term is different from given term (as above, but return a Bool) XCheck 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. aTreat 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. kAFind the type constructor arguments that are parameters, given a list of constructor types. Parameters are names which are unchanged across the structure, which appear exactly once in the return type of a constructor First, find all applications of the constructor, then check over them for repeated arguments lMark a name as detaggable in the global state (should be called for type and constructor names of single-constructor datatypes) M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k9the name of the family that we are finding parameters forthe declared constructor types 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 [ \ ] ^ _ ` 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?None -./34579G rGenerate a pattern from an  impossible LHS.nWe need this to eliminate the pattern clauses which have been provided explicitly from new clause generation. sGiven 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! tGDoes this error result rule out a case as valid when coverage checking? uQCheck whether an error is recoverable in the sense needed for coverage checking. yCheck if, in a given group of type declarations mut_ns, the constructor cn : ty is strictly positive, and update the context accordingly zCalculate the totality of a function from its patterns. Either follow the size change graph (if inductive) or check for productivity (if coinductive) }3Calculate 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 u v w x ythe group of type declarationsthe constructor z { | } ~   m n o p q r s t u v w x y z { | } ~   r s t u v w x y z { | } ~  n o p q m  m n o p q r s t u v w x y z { | } ~  @None  -./34579GU 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 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 name 9Compute the appropriate name for a top-level metavariable RDo the left-over work after creating declarations in reflected elaborator scripts0 0 0     ANone -./34579G qElaborate 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 thing    BNone -./34579G IElaborate a top-level type declaration - for example, "foo : Int -> Int".  The precise location of the name    CNone -./34579G    DNone -./34579G \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 rules 2Checks if the clause is a possible left hand side.    ENone -./34579G+, -.  +, -.FNone -./34579G/EGet the method declaration name corresponding to a user-provided name0:Get the docstring corresponding to a member, if one exists1vIn a top level type for a method, expand all the method names' namespaces so that we don't have to disambiguate later2(Find the determining parameter locations 3456  determining params  class body  instance ctor name and location instance ctor docs /012  3456 /012GNone -./34579G 7   7HNone -./34579G Elaborate a type provider    INone -./3457989   89 JNone&*-./34579CGA Representation of an operation that can compare the current indentation with the last indentation, and an error message if it fails +Generalized monadic parsing constraint type +Idris parser with state used during parsing 5Helper to run Idris inner parser based stateT parsers KConsumes any simple whitespace (any character which satisfies Char.isSpace) #Checks if a charcter is end of line -A parser that succeeds at the end of the line Consumes a single-line comment  SingleLineComment_t ::= '--' ~EOL_t* EOL_t ; Consumes a multi-line comment G MultiLineComment_t ::= '{ -- }' | '{ -' InCommentChars_t ; k InCommentChars_t ::= '- }' | MultiLineComment_t InCommentChars_t | ~'- }'+ InCommentChars_t ; Parses a documentation comment  DocComment_t ::= |||" ~EOL_t* EOL_t ; Parses some white space Parses a string literal Parses a char literal Parses a natural number Parses an integral number Parses a floating point number 5Idris Style for parsing identifiers/reserved keywords Parses a character as a token IParses a character as a token, returning the source span of the character Parses string as a token Parses a reserved identifier oParses a reserved identifier, computing its span. Assumes that reserved identifiers never contain line breaks. >Parse a reserved identfier, highlighting its span as a keyword Parses 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 1D 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 !HAdd accessbility option for data declarations (works for classes too - abstract2 means the data/class is visible but members not) "'Error message with possible fixes list #Collect  with the same function nameW                           ! " # $ %U                           ! " #W % $                           ! " #S                              ! " # $ %KNone -./34579G(:4A map from namespace names to information about them;2All information to be documented about a namespace<7Docstrings 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 messageAIdrisDoc versionBRConverts a Name into a [Text] corresponding to the namespace part of a NS Name.C&Retrieves the namespace part of a NameD(String to replace for the root namespaceE Converts a NsName to string formF.Fetch info about namespaces and their contentsGfRemoves loose class methods and data constructors, leaving them documented only under their parent.H9Whether a Name names something which should be documentedIWhether 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.J~Finds all namespaces indirectly referred by a set of namespaces. The NsItems of the namespaces are searched for references.K1Gets all namespaces directly referred by a NsItemLGReturns an NsDict of containing all known namespaces and their contentsM!Gets the Accessibility for a NameN/Simple predicate for whether an NsItem has DocsOPredicate saying whether a Name possibly may have docs defined Without this, getDocs from Idris.Docs may fail a pattern match.PRetrieves the Docs for a NameQExtracts 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 casesR"Shorter name for extractPTermNamesS%Helper function for extractPTermNamesT%Helper function for extractPTermNamesU%Helper function for extractPTermNamesVGenerates 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.W(Over)writes the  'index.html'Z file in the given directory with an (updated) index of namespaces in the documentationXdGenerates a HTML file for a namespace and its contents. The location for e.g. Prelude.Algebra is  basePrelude Algebra.htmlYEGenerates a relative filepath for a namespace, appending an extensionZmGenerates a HTML type signature with proper tags TODO: Turn docstrings into title attributes more robustly[,Generates HTML documentation for a function.\bGenerates HTML documentation for any Docs type TODO: Generate actual signatures for typeclasses]7Generates everything but the actual content of the page^Non-break space character_GReturns a list of namespaces already documented in a IdrisDoc directory`?Copies IdrisDoc dependencies such as stylesheets to a directory+:;abc<=>? &<IState where all necessary information is extracted from.4List of namespaces to generate documentation for.8The directory to which documentation will be written.@ABName to convertCName to retrieve namespace forDENsName to convertFIState to fetch info from$List of namespaces to fetch info for9Mapping from namespace name to info about its contentsGList to remove orphans fromOrphan-free listH Name to checkPredicate resultIAccessibility to checkPredicate resultJ)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 oneK7The name to get all directly referred namespaces forLM+IState containing accessibility informationThe Name to retrieve access forNThe NsItem to test The resultOThe Name to test The resultP!IState to extract infomation fromName to load Docs forQWhere to extract names fromExtracted namesRWhere to extract names fromExtracted namesSTUV&Needed to determine the types of names$All info from which to generate docs=The base directory to which documentation will be written.W1Set of namespace names to include in the index=The base directory to which documentation will be written.X&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.Y Namespace to generate a path forExtension suffixZ&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 & &(:;abc<=>? &@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`LNone &-./34579CG '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 d)? '(' Operator_t ')' ; .2Parses a function (either normal name or operator) # FnName ::= Name | OperatorFront; /Parses a fixity declaration ? Fixity ::= FixityType Natural_t OperatorList Terminator ; 0FParses a fixity declaration type (i.e. infix or prefix, associtavity)  FixityType ::= 'infixl' | 'infixr' | 'infix' |  * ; ' ( ) * + , - . / 0 ' ( ) * + , - . / 0 ' ( ) * + , - . / 0 ' ( ) * + , - . / 0MNone &-./34579CFG; 1Parses 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 | e Tactic '|'0 Tactic | '{' TacticSeq '}' | compute | trivial | solve | attack | f | term | undo | qed | abandon | : q ; Imp ::= ? | '_'D; TacticSeq ::= Tactic ';' Tactic | Tactic ';' TacticSeq ; 6A specification of the arguments that tactics can take 2Names: n1, n2, n3, ... n 8&the FC is for highlighting information 9 Allow implicit type declarations :#Disallow implicit type declarations ; 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 A(Parses a simple user-defined expression BNTries to parse a user-defined expression given a list of syntactic extensions E&Parses a (normal) built-in expression  InternalExpr ::= UnifyLog | RecordType | SimpleExpr | Lambda | QuoteGoal | Let | If | RewriteTerm | CaseExpr | DoBlock | App ; F Parses the "impossible" keyword  Impossible ::=  F GParses a case expression  CaseExpr ::= 'case' Expr 'of'# OpenBlock CaseOption+ CloseBlock; H#Parses a case in a case expression % CaseOption ::= Expr (Impossible | '=>' Expr) Terminator ; JParses a proof block  ProofExpr ::= proof# OpenBlock Tactic'* CloseBlock ; KParses a tactics block  TacticsExpr :=  }! OpenBlock Tactic'* CloseBlock ; L+Parses a simple expression @ SimpleExpr ::=| ? Name | %  'instance' | Refl} ('{' Expr '}')? | ProofExpr | TacticsExpr | FnName | Idiom | List | Alt | Bracketed | Constant | Type | Void. | Quasiquote | NameQuote | Unquote | '_' ; @ MParses an expression in braces  Bracketed ::= '(' Bracketed' N+Parses the rest of an expression in braces = Bracketed' ::= ')' | Expr ')' | ExprList ')' | Expr g? Expr ')' | Operator Expr ')' | Expr Operator ')' | Name : Expr g Expr ')' ; OGParse the contents of parentheses, after an expression has been parsed. P(Finds optimal type for integer constant QAParses an alternative expression @ Alt ::= '(|' Expr_List '|)';7Expr_List ::= Expr' | Expr' ',' Expr_List ; @ R+Parses a possibly hidden simple expression  HSimpleExpr ::= d SimpleExpr | SimpleExpr ; S3Parses a unification log expression UnifyLog ::= %  S SimpleExpr ; T7Parses a new-style tactics expression RunTactics ::= %  T SimpleExpr ; U0Parses a disambiguation expression Disamb ::= with NameList Expr ; V!Parses a no implicits expression  NoImplicits ::= %  V SimpleExpr ; W)Parses a function application expression  App ::=  mkForeignI Arg Arg* | MatchApp | SimpleExpr Arg* ; MatchApp ::= SimpleExpr <== FnName ; XParses a function argument < Arg ::= ImplicitArg | ConstraintArg | SimpleExpr ; Y%Parses an implicit function argument  ImplicitArg ::= '{' Name ('=' Expr)? '}' ; ZHParses a constraint argument (for selecting a named type class instance) . 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 '}' ^(Parses a record field setter expression  RecordType ::= record '{' FieldTypeList '}';  C FieldTypeList ::= FieldType | FieldType ',' FieldTypeList ;   FieldType ::= FnName '=' Expr ; _7Creates setters for record types on necessary functions `Parses a type signature  TypeSig ::= : Expr ;  $ TypeExpr ::= ConstraintList? Expr; aParses a lambda expression  Lambda ::= h TypeOptDeclList LambdaTail | h SimpleExprList LambdaTail ;  G SimpleExprList ::= SimpleExpr | SimpleExpr ',' SimpleExprList ;  # LambdaTail ::= Impossible | '=>' Expr b!Parses a term rewrite expression  RewriteTerm ::= rewrite Expr (==> Expr)? 'in' Expr ; c!Parses a let binding @ Let ::= 'let' Name TypeSig'? '=' Expr 'in' Expr | 'let' Expr' '=' Expr' 'in' ExprTypeSig' ::= : Expr' ; @ e Parses a conditional expression  If ::= 'if' Expr 'then' Expr 'else' Expr fParses a quote goal QuoteGoal ::=  f Name by Expr 'in' Expr ; g!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 ; o+Parses Possible Options for Pi Expressions  PiOpts ::= d? pParses a type constraint list )ConstraintList ::= '(' Expr_List ')' '=>' | Expr '=>' ; rParses a type declaration list E TypeDeclList ::= FunctionSignatureList | NameList TypeSig ; ZFunctionSignatureList ::= Name TypeSig | Name TypeSig ',' FunctionSignatureList ; s8Parses a type declaration list with optional parameters k TypeOptDeclList ::= NameOrPlaceholder TypeSig? | NameOrPlaceholder TypeSig? ',' TypeOptDeclList ; NameOrPlaceHolder ::= Name | '_'; t`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 ; uParses a do-block  Do' ::= Do KeepTerminator; DoBlock ::= 'do' OpenBlock Do'+ CloseBlock ; v'Parses an expression inside a do block  Do ::= 'let' Name TypeSig'? '=' Expr | 'let' Expr' '=' Expr | Name '<-' Expr | Expr' '<-' Expr | Expr ; x'Parses an expression in idiom brackets  Idiom ::= '[|' Expr '|]'; y'Parses a constant or literal expression Constant ::= i | j | k | l | m | Bits8 | Bits16 | Bits32 | Bits64L | Float_t | Natural_t | VerbatimString_t | String_t | Char_t ; z$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 wholeO 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ O 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ O 9 : ; < = > ? @ A B 6 7 8 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 { | 1 2 3 4 5 } ~ I 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 { | } ~ NNone  -./34579G Elaborate a record declarationn-Creates and elaborates a projection function.o/Creates and elaborates an update function. If optionalE is true, we will not fail if we can't elaborate the update function.pPost-fixes a name with "_in".q4Creates a PArg with a given plicity, name, and term.rMachine name "rec".sCCreates 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 SyntaxInfotRecord type name ParametersFieldsConstructor Name Target typen 'Name of the argument in the constructorProjection NameProjection PlicityProjection TypeProjection DocumentationProjection SyntaxInfoProjection target type Data constructor tame $Placeholder Arguments to constructor All Field Names Argument Indexo 'Name of the argument in the constructor Field Name Field Plicity Field TypeField DocumentationField SyntaxInfoProjection Source Type Data Constructor Name Arguments to constructor  All fields Argument Index Optionalpqruvs  tnopqruvsONone &-./34579CG 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' | ; 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; PNone -./34579 +Run the action corresponding to a directive w   wQNone -./34579G 'Return the elaborated term which calls main Elaborate primitives    RNone -./34579 when building the module tree Cwhen loading modules for the REPL Bool = True for top level module *Load an entire package from its index filexyz{|}~  0True = reexport, False = make everything private   Reexporting Reexporting?       ox0yz{|}~         SNone &-./34579CG4 Parses module definition % ModuleHeader ::= DocComment_t? 'module' Identifier_t ';'?; Parses an import statement  Import ::= 'import' Identifier_t ';'?; Parses program source  Prog ::= Decl* EOF; Parses a top-level declaration Decl ::= Decl' | Using | Params | Mutual | Namespace | Class | Instance | DSL | Directive | Provider | Transform | Import! | RunElabDecl ; 9Parses 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 ' 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 ; -Parses function options given initial options  FnOpts ::= total | partial | covering |  + | %  no_implicit | %  assert_total | %  error_handler | %  reflection | % U '[' 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 ::= 6 '(' UsingDeclList ')' OpenBlock Decl* CloseBlock ; Parses a parameters declaration  Params ::=  parameters5 '(' TypeDeclList ')' OpenBlock Decl* CloseBlock ; >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 instances)  InstanceBlock ::= 'where' OpenBlock FnDecl* CloseBlock 7Parses a methods and instances block (for type classes) 2MethodOrInstance ::= FnDecl | Instance ; ClassBlock ::= 'where'9 OpenBlock Constructor? MethodOrInstance* CloseBlock ; Parses a type class declaration (ClassArgument ::= Name | '(' Name : Expr ')' ; )Class ::= DocComment_t? Accessibility? 'class'5 ConstraintList? Name ClassArgument* ClassBlock? ; (Parses a type class instance declaration ! Instance ::= DocComment_t?  'instance'E InstanceName? ConstraintList? Name SimpleExpr* InstanceBlock? ; InstanceName ::= '[' Name ']'; Parse a docstring Parses 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 | access& Accessibility |  'default' Totality | logging Natural | dynamic" StringList |  ( Name NameList | error_handlers Name NameList | language   | language   ; Parses a totality  Totality ::= partial | total 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 ::= %  T 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 necessary UA 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 code Adds names to hide list A                           ! " # ' ( ) * + , - . / 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 { | } ~  A :  TNone -./34579G !"#$  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    !"#$ UNone -./34579G %&'(   %&'( VNone -./34579/) *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS  /) *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSWNone -./34579TmConvert a name into a string usable for completion. Filters out names that users probably don't want to see.U>Get the user-visible names from the current interpreter state.V4Get the completion function for a particular command .Complete REPL commands and defined identifiers $Complete tactics and their argumentsWXYTUZ[\]^_`abcdV ef &The names of current local assumptions  WXYTUZ[\]^_`abcdV ef XNone -./34579 g hi   g hi YNone -./34579Nj;The state corresponding to an attempted match of two types.k#names which have yet to be resolvedlOarguments and typeclass constraints for each type which have yet to be resolvedmthe score so farnall names that have been usedoA list of typeclass constraintspGA directed acyclic graph representing the arguments to a function The jB represents the position of the argument (1st argument, 2nd, etc.)qRKeeps a record of the modifications made to match one type signature with anotherrtransposition of argumentss#application of symmetry of equalityt"directional" modificationsuHomogenous tuplesv)Asymmetric modifications to keep track ofw<Conduct a type-directed search using a given match predicate Our default search predicate.x.reverse the edges for a directed acyclic graphyCompute 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)]zCollect 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 overloading}gThis 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  otherwise.  Convert a q to an jB 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.4jklmnopqrstuv w xyfilter to remove some argumentsz{|}   $jklmnopqrstuv w xyz{|} ZNone -./34579G Launch the proof shell run with SIGINT handlerrun if mTry finishedrun if mTry was interrupted   [None -./34579G  Run the REPLRun the REPL server (Run a command on the server on localhostRun 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 YInvoke as if from command line. It is an error if there are unresolved totality problems.2Get the platform-specific, user-specific Idris dir9Locate the platform-specific location for the init scriptRun the initialisation script sReturns None if given an Opt which is not PkgMkDoc Otherwise returns Just x, where x is the contents of PkgMkDocDThe 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        Opt to extractResult the option to extractthe package file to test                      D           \None -./34579                                        dNone &-./34579TParses a filename. | | Treated for now as an identifier or a double-quoted string.  ]None -./34579 +Run the package through the idris compiler. Type check packages onlybThis differs from build in that executables are not built, if the package contains an executable.  Check a package and start a REPL Clean Package build files Generate 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/1572 CBuild a package with a sythesized main function that runs the tests Install package ,#Invoke a Makefile's default target. -!Invoke a Makefile's clean target.   Show Warningsquit on failurePath to ipkg file.  Path to ipkg file. Path to .ipkg file.  ! " # $ % & ' ( ) * + , -       ! " # $ % & ' ( ) * + , -       ! " # $ % & ' ( ) * + , -       ! " # $ % & ' ( ) * + , -efghijklmnopqrstuvwxyz{|}~~maaa      !"#$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                  P  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWUXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~k[     A !"#$#%&'()*+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_?`JaDbEFG,cdef/9ghi5+UVjklmn0opqrstuvwxyz{|}~"       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCCDEFGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234/56789:;<=>?@ABCDEFGHI012JK3L4MNOPQRSTUVWXYZ[\]^_ ` 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""{"|"i""}"~""""""""""""""""""""<";"""""""""""""""####################################################################################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # !## "## ## $# %# &# '# (# )# *# +# ,# -## .# /# 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 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 4 4 !4 "4 #4 $5 %5 &5 '5 (5 )5 *5 +5 ,5 -5 .5 /5 05 15 25 35 45 55 65 75 85 95 :5 ;5 <5 =5 >5 ?6 @6 A6 B6 C6 D6 E6 F6 G6 H6 I6 J7 K8 L8 M8 N8 O8 P8 Q8 R8 S8 T8 U9 V9 W9 X9 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> {> |> }> ~> > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A B B B B B C D D D D D D E F G H I J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J JcJ J J J JYJ J J J J J !J "J #J $J %J &J 'J (J )J *J +J ,J -J .J /J 0J 1J 2J 3J 4J 5J 6K 7L 8L 9L :L ;L <L =L >L ?L @L AM BM CM DM EM FM GM HM IM JM KM LM MM NM OM PM QM RM SM TM UM VM WM XM YM ZM [M \M ]M ^M _M `M aM bM cMMM dM eM fMM gM hM iM jM kM lM mM nM oM pM qM rM sM tM uM vM wM xM yM zM {M |M }M ~M M M M M M M M M M M M M M M N O O O O O O O O O O O P Q Q Q Q Q Q R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S SeS ShS S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T T T T T T T T U U U U U U U U V V V V W W X X X X X X X X X Y Y Y Z Z Z [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ \ \ \ \ \ \ \ !\ "\ #\ $] %] &] '] (] )] *] +] ,] -] .] /] 0] 1] 2] 3] 4] 5] 6] 7]L^ 8^ 9_ :_ ;` <aa =a >a ?a @a Aa Ba Ca Da E F G H I J K L M Nb Ob Pb Qb Rb Sb Tb U V W X V W Y V W Z V W [ V W \ V W ] V W ^ V W _ V W ` V W a V W b V W c V W d V W e V W f V W g V W h V W i V W j V W V W k V W l V W m V WY V W n V W V W o V W p V W q V W V W V W r V W s V W V W t V W u V W v V W w V W x V W y V W z V W { V W | V W } V W ~ V W  V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W V W                                                                                            k                           \ \    !  "   # ;  $  % o  &  ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J KG 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 E x y z { | } ~                                               " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $$$$$$$$$$ $ $ $ $ $$&&&&&&&&&&&(()))) +!+ +"+#+$+%+&+'+(+)+*+++,+-+.,/,0,1,/,2.3.4.5.6.7008090:0;0<0=0>0?0@0A0B0C1D1E1F1G1H1I1J1K1L1M2N2O2P2Q2R2S2T2U2V2W2X3Y3Z3[3\3]3^3Y3_3`3a3b3c3d3e3f3g3h3i3j3k3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z3{3|3}3~34444444444444444444444444444444444444444444444444e44f8888888999::::; ;;;;;;;;;; !;;;;;;;;<<<<<<<<<<= ======== =======EEEEFFFFFFFFGIIKKKKKKKKKKKKKKKKKKKKKKKKK K K K K KKKKKKKKKKKKK !"#$%&'()*+)*,)*-.N/N0N1N2N3N4N5N6N7P8R9R9R R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoR RpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRTTTTTT KTTTTTTTTTTTTTTUUUUVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVV V V V V VWWOWWWW WWWWWWWWWWWWWX X!X"Y#YZY$Y%Y&Y'Y(Y)Y*Y+Y,Y-Y.Y/Y0Y1Y2Y3Y4Y5)*6)*7Y8Y9Y#Y)Y-Y:Y;Y<Y=Y>Y?Y@YAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQZRZSZTZUZVZWZXZYZZZ[Z\Z]Z^Z_Z`ZaZbZcZdZeZfZgZh[i[j[k[l[m[n[o[p[q[r[s[t[u[v[w[x[y[z[{[|[}[~[[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[ddddddddddddddddddd 6d 5idris_6AxICFV8exK0D6fuK0LQ5OIRTS.JavaScript.AST IRTS.System Idris.HelpUtil.ScreenSize Idris.Colours Util.SystemUtil.DynamicLinker Idris.Core.TTIdris.Core.CaseTreeIdris.Core.ConstraintsIdris.Core.EvaluateIdris.Core.DeepSeqIdris.Core.TypecheckIdris.Core.ProofTermIdris.Core.UnifyIdris.Core.ProofStateIdris.Core.Elaborate IRTS.LangIdris.Core.WHNFIdris.Docstrings Idris.UnlitIRTS.DefunctionaliseIRTS.SimplifiedIRTS.CodegenCommonIdris.AbsSyntaxTreeIdris.ASTUtils Idris.DeepSeq IRTS.BCImp IRTS.Bytecode IRTS.LangOpts IRTS.DumpBC IRTS.InlinerIdris.Core.Binary Idris.IdeModeIdris.AbsSyntaxIdris.Primitives Idris.DSLIdris.DataOpts Idris.InlinerIdris.Elab.AsPatIdris.TransformsIdris.ErrReverseIdris.DelaborateIdris.PartialEvalIdris.ReflectionIdris.Elab.QuasiquoteIdris.REPL.Browse Idris.Apropos Idris.DocsIdris.WhoCalls IRTS.CodegenCIRTS.CodegenJavaScript Idris.Output Idris.ErrorIdris.Core.Execute Idris.ImportsIdris.ProvidersIdris.ProofSearch Idris.Erasure IRTS.Exports IRTS.CompilerIdris.Elab.UtilsIdris.CoverageIdris.Elab.TermIdris.Elab.ValueIdris.Elab.TypeIdris.Elab.TransformIdris.Elab.ClauseIdris.Elab.DataIdris.Elab.ClassIdris.Elab.InstanceIdris.Elab.ProviderIdris.Elab.RunElabIdris.Parser.HelpersIdris.IdrisDocIdris.Parser.OpsIdris.Parser.ExprIdris.Elab.RecordIdris.Parser.DataIdris.DirectivesIdris.ElabDecls Idris.IBC Idris.ParserIdris.CaseSplitIdris.InteractiveIdris.REPL.ParserIdris.Completion Idris.ChaserIdris.TypeSearch Idris.Prover Idris.REPLIdris.CmdOptions Pkg.Package Tools_idrisUtil.Net Version_idris Paths_idris Util.PrettygetFC Pkg.PParserFFIFFICodeFFIArgFFIErrorJSJSRawJSIdent JSFunctionJSTypeJSSeqJSReturnJSAppJSNewJSErrorJSBinOpJSPreOpJSPostOpJSProjJSNull JSUndefinedJSThisJSTrueJSFalseJSArrayJSStringJSNumJSWordJSAssignJSAllocJSIndexJSSwitchJSCond JSTernaryJSParensJSWhileJSFFI JSAnnotationJSDeleteJSClearJSNoop JSConstructorJSWord8JSWord16JSWord32JSWord64JSIntJSFloat JSInteger JSBigZeroJSBigOneJSBigInt JSBigIntExprJSIntTy JSStringTy JSIntegerTy JSFloatTyJSCharTyJSPtrTy JSForgotTyffi compileJS compileJS' jsInstanceOfjsOrjsAndjsMethjsCalljsTypeOfjsEqjsNotEq jsIsNumberjsIsNulljsBigInt jsUnPackBits jsPackUBits8 jsPackUBits16 jsPackUBits32 jsPackSBits8 jsPackSBits16 jsPackSBits32$fShowJSAnnotationversion getDataDirgetDataFileNamegetCC getEnvFlags getTargetDir getLibFlagsgetIdrisLibDir getIncFlagsCmdArgExprArgNameArgFileArg ModuleArgPkgArgs NumberArg NamespaceArg OptionArg MetaVarArg ColourArgNoArgSpecialHeaderArgConsoleWidthArgDeclArgManyArgs OptionalArgSeqArgs extraHelpgetScreenWidth ColourType KeywordColourBoundVarColourImplicitColourFunctionColour TypeColour DataColour PromptColourPostulateColour ColourTheme keywordColourboundVarColourimplicitColourfunctionColour typeColour dataColour promptColourpostulateColour IdrisColourcolourvivid underlinebolditalic defaultTheme colourisehStartColourise hEndColourise colouriseKwdcolouriseBoundcolouriseImplicit colouriseFun colouriseType colouriseDatacolourisePromptcolouriseKeywordcolourisePostulatecatchIO isWindowstempfile readSource writeSourcewriteSourceTextisATTY withTempdirrmFilesetupBundledCC ForeignFunFunfun_name fun_handle DynamicLibLiblib_name lib_handle tryLoadLib tryLoadFnEnvTypeTermTypeInfoTI con_namescodata data_opts param_pos mutual_typesDataOptsDataOptCodataDefaultEliminatorDefaultCaseFun DataErrRevDatatypeData d_typename d_typetagd_typed_uniqued_consEnvTTTermSizetermsizeTTPVBindAppConstantProjErased ImpossibleTTypeUType AppStatusComplete MaybeHolesHolesNameTypeBoundRefDConnt_tagnt_arity nt_uniqueTConUCs ConstraintFC uconstraintufc UConstraintULTULEUExpUVarUValBinderLambinderTyPi binderImpl binderKindLet binderValNLetHoleGHoleenvlen localnamesGuessPVarPVTy ImplicitInfoImpl tcinstance toplevel_impRawVarRBindRAppRTypeRUType RConstantUniverseNullType UniqueTypeAllTypesConstIBIFlChStrB8B16B32B64ATypeStrType WorldTypeTheWorldVoidTypeForgotArithTyATIntATFloatIntTyITFixedITNativeITBigITCharNativeTyIT8IT16IT32IT64Ctxt SpecialNameWhereNWithN InstanceNParentNMethodNCaseNElimN InstanceCtorNMetaNNameUNNSMNSNSymRefTCOKErrorErrErr'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'unwrapFCFC _fc_fname _fc_start_fc_endNoFCFileFCfc_fnamefc_startfc_endspanFCfcInemptyFCfileFCtfaildiscardshowSeppmap traceWhentxtstrtnulltheadsUNsNSsMN sInstanceNshowCG emptyContextmapCtxttcname implicitablensrootaddDeflookupCtxtName lookupCtxtlookupCtxtExactdeleteDefExact updateDeftoAlistaddAlist intTyName nativeTyWidth isTypeConst constIsType constDocsfmapMB raw_apply raw_unapply isInjective instantiatesubstV explicitNamespToV addBinderpToVsvToPfinalise pEraseTypesubstpsubst substNames substTerm occurrences noOccurrence freeNamesarityunApplymkAppunListtermSmallerThanforget safeForget forgetEnv safeForgetEnvbindAll bindTyArgs getArgTysgetRetTyuniqueNameFrom uniqueName uniqueNameSet uniqueBindersnextNameshowEnv showEnvDbg prettyEnvpureTermweakenTm orderPatsrefsInliftPats allTTNamespprintTT pprintRaw bindingOfPhase CompileTimeRunTime ErasureInfoCaseTreeCaseAltCaseAlt'ConCaseFnCase ConstCaseSucCase DefaultCaseSCCaseType UpdatableSharedSC'CaseProjCaseSTerm UnmatchedCaseImpossibleCaseCaseDefsmall namesUsed findCalls findUsedArgs simpleCasesubstSCsubstAltmkForceucheckContext next_tvar definitionsMetaInformationEmptyMIDataMIPReasonOtherItself NotCovering NotPositiveUseUndef ExternalIO BelieveMeMutual NotProductiveTotalityTotal ProductivePartial Unchecked Generated AccessibilityHiddenPublicFrozenPrivateCaseInfocase_inlinablecase_alwaysinline tc_dictionaryCaseDefscases_totcheckcases_compiletime cases_inlined cases_runtimeDefFunctionTyDeclOperatorCaseOpQuotequoteValueVPVVVBindVBLetVAppVTypeVUTypeVErased VImpossible VConstantVProjVTmpinitEval normaliseC normaliseAllnormaliseBlocking normalisenormaliseTracetoValue quoteTerm specialisesimplify rt_simplifyhnf isUniverseconvEq'convEq initContext mapDefCtxt ctxtAlist addToCtxt setAccesssetTotalsetMetaInformation addCtxtDef addTyDecl addDatatype addCasedefsimplifyCasedef addOperator lookupNames lookupTyNamelookupTyNameExactlookupTy lookupTyExact isConName isTConName isDConName canBeDConNameisFnNameisTCDictlookupP lookupP_alllookupDefExact lookupDef lookupNameDef lookupDefAcclookupDefAccExact lookupTotallookupTotalExactlookupMetaInformationlookupNameTotal lookupVal lookupTyEnvuniqueNameCtxtuniqueBindersCtxt forceDefCtxt$fNFDataCaseAlt' $fNFDataSC'$fNFDataCaseDefs$fNFDataCaseInfo $fNFDataDef$fNFDataMetaInformation$fNFDataPReason$fNFDataTotality$fNFDataAccessibility $fNFDataTT $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 convertsCconvertsisHoleerrEnvisTyperecheckrecheck_borrowingcheckcheck' checkUniqueGoalGDpremisesgoalType RunTactic' ProofTermrefocus mkProofTerm getProofTermresetProofTermupdateSolvedTermupdateSolvedTerm'updsubst updateSolvedgoalatHolebound_in bound_in_termFails FailContextfail_sourcelocfail_fn fail_paramFailAtMatchUnify unrecoverable match_unifyunifyTacticAttackClaimClaimFnReorderExactFill MatchFillPrepFill CompleteFillRegretSolve StartUnifyEndUnifyUnifyAllCompute ComputeLetSimplify HNF_ComputeEvalInCheckInIntroIntroTyForallLetBind ExpandLetRewrite InductionCaseTacEquivPatVarPatBindFocusDefer DeferTypeInstanceAutoArg SetInjectiveMoveLast MatchProblems UnifyProblems UnifyGoal UnifyTerms ProofStateUndoQEDPSthnameholesusednsnextnameglobal_nextnameptermptype dontunifyunified notunifieddottedsolvedproblems injectivedeferred instancesautospsnamespreviouscontext datatypesplogunifylogdonerecentswhile_elaboratingnowElaboratingPSdoneElaboratingAppPSdoneElaboratingArgPSnewProof envAtFocus goalAtFocus dropGiven keepGiven getProvenance processTacticElabElab' ElabStateESproof proofFailexplicit addPSname getPSnames saveState loadState getNameFrom setNextNameinitNextNameFrom transformErrerrAterunrunElabexecElabinitElaborator 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_deferredcheckInjective get_instances get_autos unique_hole unique_hole'eloggetLogattackclaimclaimFn unifyGoal unifyTermsexactfill match_fill prep_fill complete_fillsolve start_unify end_unify unify_allregretcompute computeLet hnf_computeeval_incheck_inintrointroTyforallletbind expandLetrewrite inductioncasetacequivpatvarpatvar'patbindfocusmovelastdotterm get_dottermzipHere matchProblems unifyProblemsdefer deferType instanceArgautoArgsetinj proofstatereorder_claimsqedundo prepare_applyapply match_applyapply'apply2 apply_elab checkPiGoal simple_app infer_appdep_apparg no_errorstry handleErrortry'tryCatchtryWhentryAlltryAll' prunStateTdebugElaboratorqshow dumpprobs LiftStateLSLOptInlineNoInlineLDefsLDeclLFun 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 allocUniqueusedArgusedIn $fShowLExpWEnvwhnfSpace SoftBreak LineBreakEmphStrongCodeLinkImageEntityRawHtmlBlockParaHeader BlockquoteList CodeBlock HtmlBlockHRule Docstring DocStringDocTermCheckedExampleFailing renderDocTermcheckDocstringparseDocstringrenderDocstringoverviewemptyDocstring nullDocstringnoDocs containsText renderHtml annotCodeunlit EvalApplyEvalCase ApplyCaseDDefsDDeclDFun DConstructorDAltDConCase DConstCase DDefaultCaseDExpDVDAppDLetDUpdateDProjDCDCaseDChkCaseDConstDForeignDOpDNothingDErrordefunctionalisegetFnaddAppseEVALtoConstoConsA mkApplyCasemkEvalmkApplydeclaregenArgsmkFnCon mkUnderCon mkBigCasegroupsOf dumpDefuns $fShowDExpSDeclSFunSAltSConCase SConstCase SDefaultCaseSExpSVSAppSLetSUpdateSConSCaseSChkCaseSProjSConstSForeignSOpSNothingSError simplifyDefs CodeGenerator CodegenInfo outputFile outputType targetTriple targetCPUincludes importDirs compileObjs compileLibs compilerFlags debugLevel simpleDecls defunDecls liftDecls interfaces exportDecls OutputTypeObject Executable MavenProjectDbgLevelNONEDEBUGTRACE SyntaxInfoSynusing syn_params syn_namespaceno_imp imp_methods decoration inPatternimplicitAllowedmaxline mut_nestingdsl_infosyn_in_quasiquoteUsing UImplicit SyntaxRulessyntaxRulesListSSymbolKeywordSymbolBindingExpr SimpleExprSyntaxRuleDeclRule SynContext PatternSyntax TermSyntax AnySyntaxDSLDSL'dsl_bind dsl_return dsl_applydsl_puredsl_var index_first index_next dsl_lambdadsl_letdsl_piOptInfoOptimise inaccessible detaggableFnInfo fn_paramsTIData TIPartial TISolution RecordInfoRIrecord_parametersrecord_constructorrecord_projections ClassInfoCIinstanceCtorName class_methodsclass_defaultsclass_default_superclasses class_paramsclass_instancesclass_determinersPArgArgOpt AlwaysShow HideDisplayInaccessibleArg UnknownImpPArg'PImppriority machine_infargoptspnamegetTmPExp PConstraint PTacImplicit getScriptPDoPDo'DoExpDoBindDoBindPDoLetDoLetPPTacticPTactic'IntrosRefineDoUnifyUnfocus MatchRefineLetTacLetTacTyTrivial TCInstance ProofSearchTryTSeq ApplyTactic ByReflectionReflectGoalTypeTCheckTEvalTDocStrTSearchSkipTFailQedAbandonSourceFCPAltType ExactlyOne FirstSuccess TryImplicitPTermPQuotePRef PInferRefPPatvarPLamPPiPLetPTypedPAppPAppImplPAppBind PMatchApp PIfThenElsePCasePTrue PResolveTCPRewritePPairPDPairPAs PAlternativePHiddenPType PUniversePGoal PConstant PlaceholderPDoBlockPIdiomPReturnPMetavarPProofPTactics PElabError PImpossiblePCoercedPDisamb PUnifyLog PNoImplicits PQuasiquotePUnquote PQuoteNamePRunElab PConstSugarPunInfoIsTypeIsTerm TypeOrTermPClausePDataPDeclPData' PDatadecld_name d_name_fcd_tcon PLaterdeclPClause'PWithPClauseRPWithRElabDEState case_decls delayed_elab new_tyDecls highlightingRDeclInstructions RTyDeclInstrsRClausesInstrs RAddInstanceRDatatypeDeclInstrsRDatatypeDefnInstrs DirectiveDLibDLinkDFlagDIncludeDHideDFreezeDAccessDDefaultDLogging DDynamicLibs DNameHintDErrorHandlers DLanguage DDeprecateDAutoImplicitsDUsedPDecl'PFixPTy PPostulatePClausesPCAFPParams PNamespacePRecordPClass PInstancePDSLPSyntaxPMutual PDirective PProvider PTransform PRunElabDecl ProvideWhat ProvideWhat'ProvTerm ProvPostulateFnOptsFnOpt InlinableTotalFn PartialFn CoveringFn Coinductive AssertTotal DictionaryImplicit NoImplicitCExport ErrorHandler ErrorReverse Reflection Specialise ConstructorAutoHint PEGeneratedPlicityImppargoptspstaticpparampscopedExp ConstraintTacImppscriptStaticDynamicFixDeclFixFixityInfixlprecInfixrInfixNPrefixN ElabShellCmdEQEDEAbandonEUndo EProofState EProofTermEEvalECheckESearchEDocStrOptFilenameQuietNoBanner ColourREPLIdemode IdemodeSocketShowLibs ShowLibdirShowIncsShowPkgsShowLoggingCats NoBasePkgs NoPrelude NoBuiltinsNoREPLOLoggingOLogCatsOutput InterfaceTypeCase TypeInType DefaultTotalDefaultPartial WarnPartial WarnReach EvalTypes NoCoverage ErrContextShowImplVerbosePort IBCSubDir ImportDirPkgBuild PkgInstallPkgCleanPkgCheckPkgREPLPkgMkDocPkgTestPkgIndexWarnOnlyPkgBCAsm DumpDefun DumpCases UseCodegen CodegenArgsOutputTy ExtensionInterpretScriptEvalExpr TargetTriple TargetCPUOptLevelAddOpt RemoveOptClient ShowOrigErr AutoWidth AutoSolveUseConsoleWidthDumpHighlights DesugarNatsNoElimDeprecationWarningsNoOldTacticDeprecationWarningsLogCatIParseIElabICodeGenIErasure ICoverageIIBC OutputFmt HTMLOutput LaTeXOutputCommandQuitHelpEvalNewDefnUndefineCheckCoreDocStrTotCheckReloadWatchLoadChangeDirectory ModImportEditCompileExecuteExecValMetavarsProveAddProofRmProof ShowProofProofs UniversesLogLvl LogCategorySpecWHNF TestInlineDefnMissing DynamicLink ListDynamicPattelabSearch CaseSplitAt AddClauseFromAddProofClauseFrom AddMissingMakeWithMakeCase MakeLemma DoProofSearchSetOptUnsetOptNOP SetColourColourOn ColourOffListErrorHandlersSetConsoleWidthSetPrinterDepthAproposWhoCallsCallsWhoBrowseMakeDocWarrantyPrintDefPPrint TransformInfo DebugInfo DebugUnify HowMuchDocsFullDocs OverviewDocsCodegenViaBytecodeIdrisIBCWriteIBCFixIBCImp IBCStaticIBCClass IBCRecord IBCInstanceIBCDSLIBCDataIBCOpt IBCMetavar IBCSyntax IBCKeyword IBCImport IBCImportDirIBCObjIBCLib IBCCGFlagIBCDyLib IBCHeader IBCAccessIBCMetaInformationIBCTotalIBCFlags IBCFnInfoIBCTrans IBCErrRevIBCCGIBCDoc IBCCoercionIBCDef IBCNameHint IBCLineAppIBCErrorHandlerIBCFunctionErrorHandler IBCPostulate IBCExternIBCTotCheckErrIBCParsedRegion IBCModDocsIBCUsage IBCExport IBCAutoHint IBCDeprecateCGInfocallsscgusedpos UsageReasonSCGEntry SizeChangeSmallerSameBiggerUnknownIStatett_ctxtidris_constraints idris_infixesidris_implicits idris_statics idris_classes 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 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_importdirs opt_tripleopt_cpu opt_cmdline opt_origerr opt_autoSolveopt_autoImport opt_optimiseopt_printdepth opt_evaltypesopt_desugarnats opt_autoimplsElabInfoEInfoparamsinblockliftname namespaceelabFC rec_elabDeclElabWhatETypesEDefnsEAlltoplevel eInfoNames defaultOptsdefaultOptimisedefaultPPOptionverbosePPOptionppOption ppOptionIstprimDefs idrisInit catchError throwError strLogCat codegenCats parserCatselabCatsloggingCatsStr is_scopedimpl forall_impforall_constraintexpl expl_param constrainttacimpl inlinable dictionary initEStatehighlightSource mapPDataFC mapPDeclFCdeclared tldeclareddefinedupdateNupdateNs mapPTermFCmapPTpimppexppconstptacimp highestFC syntaxNames syntaxSymbolsemptySyntaxRulesupdateSyntaxRulesinitDSL defaultSyntaxexpandNSbiinferTyinferCon 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 $fShowIStateField fgetState fputState fmodifyState ctxt_lookupist_optimisationopt_inaccessibleopt_detaggable ist_callgraph cg_usedposopts_idrisCmdline known_terms known_classesrepl_definitionsidris_fixities$fNFDataIState$fNFDataOutputMode$fNFDataSyntaxInfo $fNFDataUsing$fNFDataSSymbol$fNFDataSyntax$fNFDataSynContext $fNFDataDSL'$fNFDataTypeInfo$fNFDataOptInfo$fNFDataRecordInfo$fNFDataClassInfo $fNFDataPArg' $fNFDataPDo'$fNFDataPTactic'$fNFDataPAltType $fNFDataPTerm$fNFDataPData'$fNFDataPClause'$fNFDataPunInfo$fNFDataProvideWhat'$fNFDataPDecl'$fNFDataDataOpt $fNFDataFnOpt$fNFDataPlicity$fNFDataArgOpt$fNFDataStatic$fNFDataFixDecl$fNFDataFixity$fNFDataCGInfo$fNFDataLogCat$fNFDataCodegen$fNFDataFnInfo$fNFDataSizeChange$fNFDataDocTerm$fNFDataNumWrapper$fNFDataCodeAttr$fNFDataListType$fNFDataInline $fNFDataBlock$fNFDataIBCWrite$fNFDataOutputType$fNFDataIdrisColour$fNFDataColourTheme$fNFDataOptimisation$fNFDataLanguageExt$fNFDataIOption$fNFDataTIData $fNFDataOpt$fNFDataDynamicLib$fNFDataSyntaxRules$fNFDataPrimFn$fNFDataConsoleWidth$fNFDataOptions$fNFDataDocstringBCRegRValLtoBCbcASSIGN ASSIGNCONSTUPDATEMKCONCASEPROJECT PROJECTINTO CONSTCASECALLTAILCALL FOREIGNCALLSLIDEREBASERESERVEADDTOPTOPBASEBASETOPSTOREOLDOPNULLERRORTTmpcleanisConstmoveRegassignconCase constCasecaseAltconstAlt defaultAlt inlineAllnextNdoInlineinterMapindent serializeReg serializeCaseserializeDefault serializeBC serializedumpBCinlineinlevalD $fBinaryTT $fBinaryUExp$fBinaryNameType$fBinaryUniverse$fBinaryBinder$fBinaryImplicitInfo $fBinaryRaw $fBinaryConst$fBinarySpecialName $fBinaryName $fBinaryFC' $fBinaryFC $fBinaryErr'$fBinaryConstraintFC$fBinaryUConstraint$fBinaryProvenance$fBinaryErrorReportPartIdeModeCommandREPLCompletions InterpretTypeOf CaseSplit AddClauseAddProofClause MakeWithBlock MakeCaseBlockLoadFileDocsForGetOpts MetavariablesBrowseNS TermNormaliseTermShowImplicitsTermNoImplicitsTermElab ErrString ErrPPrintGetIdrisVersionWhatDocsOverviewFullSExpabletoSExpSexpList StringAtomBoolAtom IntegerAtom SymbolAtomgetNChargetLen sExpToString sexpToCommand parseMessageconvSExp ideModeEpoch EitherErrLeftErrRightOK getContext forCodegengetObjectFiles addObjectFilegetLibsaddLibgetFlagsaddFlagaddDyLibgetAutoImports addAutoImportaddDefinedNamegetDefinedNamesaddTTdumpTTaddHdr addImported addLangExtaddTrans addErrRevaddErasureUsage addExport addUsedNamegetErasureUsage getExportstotcheckdefer_totcheckclear_totchecksetFlags setFnInfosetAccessibilitygetFromHideList setTotality getTotalitygetCoercionsToaddToCGaddCalls addTyInferredaddTyInfConstraints isTyInferredaddFunctionErrorHandlersgetFunctionErrorHandlers getAllNamesallNames addCoercion addDocStr addNameHint getNameHints addDeprecated getDeprecated push_estack pop_estack addInstanceaddClass 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 setColouriseimpShow setImpShow setColourlogLvl logCoverage logErasure logParserlogElab logCodeGenlogIBC logLvlCats cmdOptTypenoErrors setTypeCase expandParams expandParamsDmapsnd getPriority addStatics addToUsingaddUsingConstraints addUsingImplsgetUnboundImplicitsimplicit implicit' implicitise addImplPat addImplBoundaddImplBoundInfaddImpladdImpl'aiFnimpInexpArg stripLinearstripUnmatchablemkPApp findStaticstoEither matchClause matchClause' substMatchessubstMatchesShadow substMatchsubstMatchShadowshadow mkUniqueNames$fMonadEitherErr$fApplicativeEitherErrPrimp_namep_typep_arityp_defp_lexpp_total primitives debindAppdslifydesugarmkTTName expandSugarvarunIdiomdebind applyOpts inlineDef inlineTerm desugarAs transformPatstransformPatsWithapplyTransRulesapplyTransRulesWith errReversebugaddrresugar delabSugareddelabdelabMVdelabTydelab'delabTy' pprintDelab pprintNoDelab pprintDelabTy pprintErrannName fancifyAnnotspe_apppe_def pe_clauses pe_simple PEArgType ImplicitS ImplicitD ExplicitS ExplicitDUnifiedD partial_evalspecType mkPE_TyDecl mkPE_TermDecl getSpecAppsRFunDefn 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 reflectArgreflectCtorArgreflectDatatypereflectFunClausereflectFunDefnextractUnquotesnamespacesInNS namesInNSaproposaproposModulesDocsDocs'FunDocDataDocClassDoc RecordDocNamedInstanceDocModDocFunDoc'FD pprintDocsgetDocspprintConstDocs pprintTypeDocwhoCallscallsWhocodegenCJSTargetNode JavaScriptcodegenJavaScript codegenNodepshowiWarniRender hWriteDocconsoleDisplayAnnotatediPrintTermWithTypeiPrintFunTypes iRenderOutput iRenderResultideModeReturnWithStatusideModeReturnAnnotated iRenderErroriPrintWithStatus iPrintResult iPrintError iputStrLnidemodePutSExpiputGoal warnTotalityprintUndefinedNamesprettyDocumentedIstsendParserHighlightingsendHighlightingwriteHighlightsclearHighlightsrenderExternal$fMonadExceptionExceptTiucheckshowErrreport idrisCatch setAndReportifailierrortclifttctry getErrSpan warnDisambexecute IFileTypeIDRLIDRIBCpkgIndexibcPathNoFallback findImport findInPath findPkgIndexinstalledPackagesProvidedProvide providerTy getProvidedtrivial trivialHoles proofSearch resolveTCperformUsageAnalysis mkFieldName findExports getExpNamescompilegeneraterecheckCrecheckC_borrowingcheckDeprecatediderrcheckDef checkAddDefinaccessibleImpsinaccessibleArgs elabCaseBlock checkInferred inferredDiff checkDocs decorateidpbindspbtygetPBtyspsolvepvarsgetFixedInType getFlexInTypegetParamsInTypegetTCinjgetTCParamsInType paramNames getUniqueUsedgetStaticNames getStaticsmkStatic mkStaticTycheckVisibility findParams setDetaggable MultiPath GuardednessToplevel UnguardedGuardedmkPatTm genClausesvalidCoverageCaserecoverableCoveragegenAllupdcheckAllCovering checkPositive calcTotality checkTotalitycheckDeclTotalitybuildSCGdelazydelazy' buildSCG'checkSizeChange mkMultiPathscheckMP allNothingcollapseNothing noPartialcollapse collapse'ElabCtxte_inarge_isfn e_guardede_intypee_qq e_nomatching ElabResult resultTermresultMetavarsresultCaseDecls resultContext resultTyDeclsresultHighlighting resultNameElabModeETyDecl ETransLHSELHSERHSbuildbuildTCgetUnmatchable initElabCtxtgoal_polymorphicelabpruneAlt pruneByType isPlausible findHighlight solveAuto solveAutos tcRecoverabletrivial' trivialHoles' proofSearch' resolveTC'collectDeferredcase_ metavarName runElabActionrunTacelaboratingArgErrwithErrorReflectionsolveAllprocessTacticDecls elabValBindelabVal elabDocTermselabExecelabREPL buildTypeelabType elabType' elabPostulate elabExtern elabTransform elabClauseselabPE checkPossiblepropagateParams findUnique elabClauseelabData elabClass elabInstance elabProvider elabRunElabIndentPropertyHasLastTokenSpangetLastTokenSpanMonadicParsingIdrisInnerParserrunInnerParser IdrisParser runparser highlightPnoDocCommentHereclearParserWarningsreportParserWarnings parserWarningsimpleWhiteSpaceisEoleolsingleLineCommentmultiLineComment docComment whiteSpace stringLiteral charLiteralnaturalintegerfloat idrisStylecharstringlcharlcharFCsymbolsymbolFCreserved reservedFC reservedHL reservedOp reservedOpFC identifieriName maybeWithNSname initsEndAtmkNameopCharsoperatorLettercommentMarkersinvalidOperatorsoperator operatorFCfileNamelineNum columnNumbindListcommaSeparated pushIndent popIndent lastIndentindented indentedBlockindentedBlock1indentedBlockSlookAheadMatches openBlock closeBlock terminatorkeepTerminator notEndApp notEndBlockindentPropHoldsgtPropgtePropeqPropltProplteProp notOpenBracesaccessibility' accessibilityaddAccaccData fixErrorMsgcollect$fHasLastTokenSpanStateT$fTokenParsingStateT generateDocstabletoTablebinaryprefixbackticknofixityoperator operatorFrontfnNamefixity fixityType TacticArgNameTArgExprTArgAltsTArg StringLitTArgSynMatchSynTmSynBindallowImp disallowImpfullExpr tryFullExprexpropExprexpr' externalExprsimpleExternalExpr extensions extensionupdateSynMatch internalExpr impossiblecaseExpr caseOptionwarnTacticDeprecation proofExpr tacticsExpr simpleExpr bracketed bracketed' bracketedExpr modifyConstalt hsimpleExprdisamb noImplicitsapp implicitArg constraintArg quasiquoteunquote namequote recordTypemkTypetypeExprlambda rewriteTermlet_ let_bindingif_ quoteGoal bindsymbol explicitPi autoImplicitdefaultImplicitnormalImplicit implicitPi unboundPipipiOptsconstraintListconstraintList1 typeDeclList tyOptDeclListlistExprdoBlockdo_do_altidiom constantsconstantverbatimStringLiteralstatictacticstactic fullTactic elabRecordrecordrecordParameterdataIrecordIdataOptsdata_ constructorsimpleConstructordslcheckDSLoverloaddirectiveActionrecinfoelabMain elabPrims elabDeclselabDecl elabDecl'IBCPhase IBC_BuildingIBC_REPLhasValidIBCVersionloadIBC loadPkgIndexwriteIBC writePkgIndex ImportInfoimport_reexport import_path import_renameimport_namespaceimport_locationimport_modname_location moduleHeaderimport_progdecl internalDecldecl' externalDecldeclExtensions declExtension syntaxDecl addSyntax addReplSyntax syntaxRule syntaxSymfnDeclfnDecl'fnOpts postulateusing_mutual instanceBlock classBlockclass_ instance_ 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 makeLemmaparseCmd setOptionshelpallHelpreplCompletionproverCompletion ModuleTreeMTreemod_pathmod_needsRecheckmod_timemod_depsgetModuleFiles getImports buildTree searchByType searchPreddefaultScoreFunctionprover showProof showRunElab runClientidris loadInputs idrisMainrunMaingetPkg getPkgClean getPkgREPL getPkgCheck getPkgMkDoc getPkgTest getClientgetPortoptver runArgParser pureArgParserparser parseFlags parseVersion preProcOpts parseCodegen parseLogCatsparseConsoleWidth integerReaderbuildPkgcheckPkgreplPkgcleanPkg documentPkgtestPkg installPkg buildModstestLibrmIBCrmIdxrmExe toIBCFile installIBC installIdx installObjmkDirCmdinPkgDirmakehasBundledToolchaingetToolchainDirlistenOnLocalhostlistenOnLocalhostAnyPortgitHashbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getLibexecDir getSysconfDiroverrideDataDirWithextraLibgmpLib extraInclude $fShowCmdArgmkSGRcolouriseWithSTXmkColour isATTYRawPrettyprettySizedsize nestingSize $fSized[] $fSized(,)annot_7zYMiF3emLt6jfsSioGRzu!Text.PrettyPrint.Annotated.LeijenhPutDocputDocdisplayDecoratedAdisplayDecorated displaySpans displayIOdisplaySdisplay renderCompact renderPretty noAnnotateannotategroupnestingcolumnnest linebreaklinetextemptyalignhangwidth fillBreakrationaldoubleintboolpipeequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><$><+><>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlistDocSpanList SAnnotStop SAnnotStartSLineSTextSCharSEmpty SimpleDocWkEnvTT vinstances weakenEnv weakenTmEnv$fEqFCWkEnvWkOption TTypeInTType CheckConvbindTCfailMsgtrunsParentN intTyWidthpToV' itBitsNameshowEnv' $fShowConst$fShowTT$fEqTT $fPrettyTTo $fSizedTT$fSizedUniverse $fTermSizeTT $fTermSize[] $fEqNameType $fPrettyNameTypeOutputAnnotation$fSizedNameType$fShowUConstraint$fOrdConstraintFC$fEqConstraintFC $fShowUExp $fSizedUExp $fSizedBinder$fPrettyRawOutputAnnotation $fSizedRaw$fShowUniverse$fPrettyConstOutputAnnotation $fSizedConst$fPrettyArithTyOutputAnnotation $fPrettyNativeTyOutputAnnotation$fShowSpecialName $fShowName$fPretty[]OutputAnnotation$fPrettyNameOutputAnnotation $fSizedName$fShowTC$fPrettyTCOutputAnnotation$fPrettyErr'OutputAnnotation $fShowErr' $fSizedErr'$fSizedErrorReportPart$fAlternativeTC$fApplicativeTC $fMonadPlusTC $fMonadTC$fShowFC $fSizedFC $fShowFC'$fEqFC'GroupConGroupConTypeCNameCFnCSucCConst PartitionConsVarsPatPConPConstPVPSuc PReflectedPAnyPTyPat CaseBuilderCSClause directUsefindAllUsedArgsisUsedrunCaseBuildercheckSameTypes isConstTypetoPatstoPatisVarPatisConPat partitionordermatchmixtureconRule caseGroups argsToAltgetVar groupConsvarRuledepattprune stripLambdas$fTermSizeCaseAlt' $fTermSizeSC' $fShowSC'varsInQueue SolverStatequeue domainStorecons_lhscons_rhsDomainordNubeval MkContextEvalOptHNFAtREPLRunTT EvalStatelimitednextholeblocking finalEntrybindEnv unbindEnvusablefnCountsetBlockdeduct reinstatewknVisUsableUniversespecvevaltfst$fShowTotality$fShowAccessibility $fShowDef $fQuoteValue $fEqValue $fShow(->) $fShowValue BinderPathTermPath replaceTop rebuildTerm rebuildBinderfindHolehole updateEnvupdateSolvedPathPTpath subterm_envsubtermupdatesLetTLetVGuessTGuessVTopAppLAppRInBindInScoperefocus'same cantUnifyUResultUOKUPartOKUFailUInfoUIInjs renameBindersrenameBindersTm trimSolutions expandLetshasvboundVshighVenvPos recoverableholeInpatIn RunTacticTStateholeName match_unify'mergeSolutions dropSwapsunify' dropUntilactionqueryaddLogmkPtmap solve_unified updateProv updateError updateRessolveInProblemsmergeNotunifiedupdateNotunifiedsetReadyupdateProblemsprocess"$fPrettyProofStateOutputAnnotation$fShowProofStateWDConWTConWPRef StackEntryWBindWApp WConstantWProjWTypeWUTypeWErased WImpossibleStackdo_whnfquoteEnvInlinesBlocksoptions renderBlocks renderBlock renderList renderInlines renderInlineLineTypeProgBlankCommulLinechkAdjhvarldefssVarmkappmkfappsAltlvar scopecheckfgetfsetfmodify maybe_default$fCategory*Field maybePropsconstTy namespaceOf encodeTerm decodeTerm encodeErr decodeErrescapepSExpatomatomC quotedChar parseSExp receiveString getHexLength $fSExpableFC$fSExpableOutputAnnotation$fSExpableNameOutput$fSExpable(,,,,)$fSExpable(,,,)$fSExpable(,,) $fSExpable(,) $fSExpable[]$fSExpableMaybe$fSExpableName $fSExpableInt$fSExpableInteger $fSExpable[]0$fSExpableBool$fSExpableSExptytotalpartial 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_cantreduce OptimisableprelapplyDataOptRT$fOptimisableTT$fOptimisableBinder$fOptimisableBinder0$fOptimisableRaw$fOptimisableEither$fOptimisable[]$fOptimisable(,,)$fOptimisable(,)replaceUnderscore collectAsapplyAll applyFnRules applyRule matchTerm errorIndent renameMNs pprintTerm pprintTerm' pprintProv pprintErr'showPartaddImplicitDiffsisUNannName'annTmshowScshowqual showbasicPEDeclclassConstraint concreteClass mkNewPatsextract1extract2extractTUnquotesextractPArgUnquotesextractDoUnquotes isApropostextIndefType $fApropos[]$fAproposMaybe $fApropos(,)$fAproposDocstring$fAproposConst $fAproposTT$fAproposBinder $fAproposDef $fAproposNamehowMuchshowDocpprintFDpprintFDWithTotalitypprintFDWithoutTotalitydocDatadocClass docRecorddocFun getPArgNamesoccursnames occursBinder namesBinderoccursSCnamesSC occursCaseAlt namesCaseAlt occursDefnamesDef findOccurs 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 translateBCtoFnTypesrcPathlsrcPathibcPathibcPathWithFallbackdoesFileExist'doesDirectoryExist' caseSensitiveioretermodprmod findInstances trivialTCs cantSolveGoalresTC'VarInfoVIviDepsviFunArgviMethodCondDepSetReasonDepsArgResultUseMap minimalUsage forwardChain buildDepMap $fShowArgexpNamestoIFace toIFaceTyVal toIFaceValtoFDesc toFDescRet toFDescBase toFDescArgs toFDescPrimdeNSirMainmkDecls showCaseTreesisCondeclArgsmkLDeclirTerm doForeignirTreeirSCirAltEliminatorStatewarnLCelabCon elabCaseFunmdec memberDocs expandMethNSfindDetsMArgTyIAEACAcheckInjectiveArgs elabScriptTymustBeElabScriptNsDictNsInfo FullDocstringNsItemNsNameFailableerrtoNsNamegetNs rootNsStr nsName2Str fetchInfo removeOrphans filterName filterIncludetraceNss referredNssnsDict getAccesshasDoc mayHaveDocsloadDocsextractPTermNamesextract extractPArg extractPDoextractPTactic createDocs createIndex createNsDoc genRelNsPath genTypeHeader createFunDoccreateOtherDocwrappernbspexistingNamespacescopyDependencies nsDocstring nsContentsbaseGHC.Base.parse_Iz7m1NhGKbt9bMe2QoxPWlText.Parser.Combinatorsmtl_Aue4leSeVkpKLsfHIV51E8Control.Monad.State.Classstate GHC.Float** Data.OldList\\ integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesIntCharDoubleStringelabProjection elabUpdatein_nameasArgrecName asPRefArgelabRecordFunctionsrecRef projectInType disambiguateIBCFile sourcefileibc_reachablenames ibc_importsibc_importdirs ibc_implicits ibc_fixes ibc_statics ibc_classes ibc_records ibc_instancesibc_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_access ibcVersioninitIBC makeEntryentries writeArchivemkIBCibcgetEntrytimestampOlder pPostulatespExterns pParsedSpanpUsagepExports pAutoHints pDeprecate pImportDirspImportspImpspFixespStaticspClassespRecords pInstancespDSLs pDatatypes pOptimisepSyntax pKeywordspObjspLibspCGFlagspDyLibspHdrspPatdefspDefspDocspMDocspAccesspFlagspFnInfopTotal pTotCheckErrpCG pCoercionspTranspErrRev pLineApps pNameHintspMetaInformationpErrorHandlerspFunctionErrorHandlers pMetavars safeToEnum$fBinaryCodegen$fBinarySSymbol $fBinaryDSL'$fBinarySyntax$fBinarySynContext$fBinaryTypeInfo$fBinaryFnInfo$fBinaryOptInfo$fBinaryRecordInfo$fBinaryClassInfo $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 MergeStateMSnamemapinventedsplit addUpdate inventNamemkSupplyvarliststripNS mergeAllPatsmergePat mergeUserImplargTystidy elabNewPatfindPats replaceVar updateMeta guessBrackets checkProv addBracket 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 nameString completeCmdcommands tacticArgsmetavarsmodules completeWith completeName completeExprcompleteMetaVarcompleteOptioncompleteConsoleWidth isWhitespace lookupInHelpcompleteColour completePkgcompleteTacticlatestextractFileName getIModTimeStateargsAndClassesscore usedNamesClassesArgsDAGScore transposition equalityFlipsasymModsSidedAsymMods searchUsing reverseDag computeDagPusedVars deleteFromDagbothscoreCriterionTrueFalsesubsetsmatchTypesBulkleftrightModsargApp typeClassApptypeClassIntro typeFromDefunLazydeleteFromArgListsided displayScore modifyTypesfindNameInArgsDAGfindName deleteName tcToMaybeinArgTystypeclassUnifyisTypeClassArgflipEqualities $fMonoidScore$fMonoidAsymMods $fMonoidSided $fOrdScoreElabShellHistoryElabStepLetStepBothStepproverSettingsassumptionNamesproveelabStep dumpStatelifte receiveInputundoStepundoElabrunWithInterruptelabloopploopenvCtxt checkNameType checkTypeproverFCevalTermdocStrsearchrepl startServer idemodeStartrunIdeModeCommandideModeForceTermImplicitsmkPromptlitgetIdrisUserDataDir getInitScript initScript processNetCmdinitIdemodeSocketidemode splitNameidemodeProcessreloadwatch processInput resolveProof removeProofeditproofs insertScript showTotal showTotalN displayHelp pprintDefhelphead replSettings execScriptgetFilegetBC getOutput getIBCSubDir getImportDir getPkgDir getCodegengetCodegenArgsgetConsoleWidth getExecScript getPkgIndex getEvalExpr getOutputTygetLanguageExt getTriplegetCPU getOptLevelgetOptimisation getColour defaultPortbannerwarrantyfilenamePkgDescpkgnamelibdepsobjsmakefile idris_opts sourcedir idris_mainexecout idris_testsPParser defaultPkg parseDescpPkgpClause