܉       !"#$%&'()*+,-./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{|}~   !!!!!!!!!!!!!!""""""""""""""""""""""""""""""" " " " " """"""""""""####### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#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 2 2 2 2 2 3 3 3 !3 "3 #3 $3 %3 &3 '3 (3 )3 *3 +3 ,3 -3 .3 /3 03 13 23 33 44 54 64 74 84 94 :4 ;4 <4 =4 >4 ?5 @6 A6 B6 C6 D6 E6 F6 G6 H6 I6 J6 K6 L6 M6 N6 O6 P6 Q6 R6 S6 T6 U6 V6 W6 X6 Y6 Z7 [7 \7 ]7 ^7 _7 `7 a7 b7 c7 d7 e7 f7 g7 h7 i7 j7 k8 l8 m8 n8 o9 p9 q: r: s; t; u< v< w= x= y= z= {= |= }= ~= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? @ @ @ @ A B B B B B B C D E F G H H H H H H I I I I I I I I I I I I I I I I I I I I I I !I "I #I $I %I &I 'I (I )I *I +I ,I -I .I /I 0I 1I 2I 3I 4I 5I 6I 7I 8I 9I :I ;I <I =I >I ?I @I AI BI CI DI EI FI GI HI II JI KI LI MI NI OI PI QI RI SI TI UJ VK WK XK YK ZK [K \K ]K ^K _K `L aL bL cL dL eL fL gL hL iL jL kL lL mL nL oL pL qL rL sL tL uL vL wL xL yL zL {L |L }L ~L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N !N "N #N $N %N &N 'N (N )N *N +N ,N -N .N /N 0N 1N 2N 3N 4N 5N 6N 7N 8N 9N :N ;N <N =N >N ?O @O AO BO CO DO EO FO GO HO IO JO KO LO MO NO OO PO QO RO SO TO UO VO WO XO YO ZO [O \O ]O ^O _O `O aO bO cO dO eO fO gO hO iO jO kO lO mO nO oO pO qO rP sP tP uP vP wP xP yP zQ {Q |Q }Q ~Q Q Q R R R S S T T T T T T T T U U U V V V V V V V V V V W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W X X X X X X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y_None ./23468FT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRT6=<;:98715432-0/.(,+*)&'S%$#"!  >?@ABCDEFGHIJKLMNOPQR!%$#"!  &'(,+*)-0/.154326=<;:987>?@ABCDEFGHIJKLMNOPQRSZNone./23468   [None./23468   \None./23468   ]None./23468 T  U  VT  U  V T  U  VNone./23468X(One kind of argument followed by anotherY#Zero or one of one kind of argumentZ$Zero or more of one kind of argument[5An Idris declaration, as might be contained in a file\The width of the console] do not use^No completion (yet!?)_)The command is the colour-setting command` The command takes a metavariableaThe command takes an optionb"The command takes a namespace namecThe command takes a numberd)The command takes a list of package nameseThe command takes a module namefThe command takes a filegThe command takes a namehThe command takes an expressioni6Use these for completion, but don't show them in :helpWXYZ[\]^_`abcdefghi WXYZ[\]^_`abcdefghiWhgfedcba`_^]\[ZYXiWhgfedcba`_^]\[ZYXi None ./23468jjjjNone./23468$Idris's default console colour theme3Set the colour of a string using POSIX escape codes CSet the colour of a string using POSIX escape codes, with trailing '\STX'? denoting the end (required by Haskeline in the prompt string)'klmnopqrstuvwxyz{|}~  %klmnopqrstuvwxyz{|}~%~tuvwxyz{|}ksrqponmlksrqponmlt uvwxyz{|}~  None./23468  None ./23468 TUV VUT None ./23468:M ^None./23468       \            ! " # $ % & ' ( ) * + , - . / 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            None +-./23468W&an environment with de Bruijn indices  normalised, so that they all refer to this environmentTerms in the core language. The type parameter is the type of identifiers used for bindings and explicit named references; usually we use TT ..Uniqueness type universe (disjoint from TType)the type of types at some level"special case for totality checkingan erased termTargument projection; runtime only (-1) is a special case for 'subtract one from BI'constantfunction, function type, arg a binding%a resolved de Bruijn-indexed variable#named references with type (P for  ParameterC, motivated by McKinna and Pollack's Pure Type Systems Formalized)Type constructorData constructorUniverse constraintsLess than or equal toStrictly less than*Universe expressions for universe checkingexplicit universe leveluniverse variableAll 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 pattern variableA binding that occurs in a let expressionvalue 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. "type annotation for bound variable}Contexts allow us to map names to things. A root name maps to a collection of things in different namespaces with that name.xNames are hierarchies of strings, describing scope (so no danger of duplicate names, but need to be careful on lookup).>Reference to IBC file symbol table (used during serialisation)Decorated function names .Name of something which is never used in scope!Machine chosen names"Root, namespaces#User-provided name(eIdris errors. Used as exceptions in the compiler, but reported to users if they reach the top level.)NUser-specified message, proof term, goals with context (first goal is focused)VUsed for error reflection[&Output annotations for pretty-printing]*more general, isomorphic, or more specific^ pprint bound vars, original termbname, doc overviewctype, doc overviewe%^ The name and whether it is implicitfB^ The name, classification, docs overview, and pretty-printed typegText formatting outputk:Output annotation for pretty-printed name - decides colourqFC with equalityt<Source location. These are typically produced by the parser O_vFilenamew:Line and column numbers for the start of the location spanx8Line and column numbers for the end of the location span|Empty source location}Source location with file onlyReturn True if the argument 3 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.oif 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 /-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  -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.Cast 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.7Check whether a term has any holes 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 variable8Weaken 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 term4Pretty-printer helper for the binding site of a nameHIgnore 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 printed^ the bound name^ whether the name is implicit4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~iy{ztuvwxqrs|}kponmlgjih[fedcba`_^]\VZYXWPUTSRQ(ONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)'$&%~#"!            #"! $&%'('ONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)PUTSRQVZYXW[ fedcba`_^]\gjihkponmlqrstuvwxy{z|}~ None -./23468F reflection function already checked to be impossible error message<special case for projections/thunk-forcing before inspectioninvariant: lowest tags firstQ l m n o p q r s t u v w x y z { | } ~          ?Convert single branches to projections (only useful at runtime)  !"       !"       !"4 l m n r q p o s u t v } | { z y x w ~           !" None ./23468F#vContexts used for global definitions and for proof state. They contain universe constraints and existing definitions.(CMeta information for a data declaration with position of parameters)No meta-information*'Reasons why a function may not be total4The result of totality checking7 productive8well-founded argumentsH5A 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 OA HOAS representation of values]ONormalise fully type checked terms (so, assume all names/let bindings resolved)bLike 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.c+Simplify for run-time (i.e. basic inlining)d!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)hThe initial empty contextj"Get the definitions from a contextvSGet the list of pairs of fully-qualified names and their types that match some namewnGet the pair of a fully-qualified name and its type, if there is a unique one matching the name used as a key.x"Get the types that match some namey4Get the single type that matches some name precisely|=Check whether a resolved name is certainly a data constructor}=Check whether any overloading of a name is a data constructor;Create a unique name given context and other existing names# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \]^_`abcd e fg hij klmnopqrst uvwxyz{|}~ k#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~n_`]^cbadgfHLKJI=>?@ABCDEFG9<;:48765*3210/.-,+')(#$%&hj$%klmnopqrstuvwxyi|}{z~O[ZYXWVUTSRQPMN\&eS# $%&')(* 3210/.-,+487659<;:=>?@ABCDEFGHLKJIMNO [ZYXWVUTSRQP   \]^_`abcd e fg hij klmnopqrst uvwxyz{|}~ None -./23468F  None./23468;Check that a list of universe constraints can be satisfied.    None./23468None ./23468F FA zipper over binders, because terms and binders are mutually defined. @A zipper over terms, in order to efficiently update proof terms. kReplace the top of a term path with another term path. In other words, "graft" one term path into another. ?Build a term from a zipper, given something to put in the hole. ABuild a binder from a zipper, given something to put in the hole. Find 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. )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. "Apply solutions to an environment. 'Fill out solved holes in a term zipper.+          None ./23468F PSmart constructor for unification errors that takes into account the FailContext             None ./23468F holes still to be solvedused names, don't use again name supplycurrent proof term original goal (explicitly given by programmer, leave it Udot 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 holesfor undo                                    ! " # ! $ % & ' ( )" * +# , - .T      !"#T     # !"L ,                                   ! " # ! $ % & ' ( )" * +# , - .None ./23468F6Modify the auxiliary state7Get the auxiliary state8#Set whether to show the unifier log:4Process a tactic within the current elaborator state@Get the global contextArUpdate the context. (should only be used for adding temporary definitions or all sorts of stuff could go wrong)Bget the proof termCmodify the proof termD4get the local context at the currently in focus holeH\Return recently solved names (that is, the names solved since the last call to get_recents)Iget the current goal typeK2Get the guess at the current hole, if there is oneLTypecheck locallyN-get holes we've deferred for later definitionPget instance argument namesQget auto argument namesR4given a desired hole name, return a unique hole namesWTurn the current hole into a pattern variable with the provided name, made unique if MNySet 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 argumentsu$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~The operation being appliedWhether arguments are implicitWThe names of the arguments and their holes to be filled with elaborated argument values      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~u&'%$()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~t$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None -./23468F      !"#$%&'()*+,-.      !"#$%&'()*+,- #"!     $%&'()*+,-.M      #"!$%&'()*+,-.None -./23468M ;Block-level elements.CRepresentation of Idris's inline documentation. The type paramter represents the type of terms that are associated with code blocks.E>The various kinds of code samples that can be embedded in docsJ"Render a term in the documentationKRun 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.LGConstruct a docstring from a Text that contains Markdown-formatted docsM5Convert a docstring to be shown by the pretty-printerNsConstruct a docstring consisting of the first block-level element of the argument docstring, for use in summaries.OThe empty docstringP"Check whether a docstring is emtpyQ$Empty documentation for a definitionR%Does a string occur in the docstring?T(Annotate the code samples in a docstring. //0123456789:;<=>?@AB 0CDEFGHIJKL 1MN 2 3 4 5 6OPQRSTHow to annotate code samples&/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST&CD;BA@?>=</:9876543210LMOPQNRSTEIHGFJK // :9876543210;BA@?>=< 0CDEIHGFJKL 1MN 2 3 4 5 6OPQRSTNone./23468 7 8 9 :U ; < =UU 7 : 9 8U ; < =None ./23468F*VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*anmlkjihgfedcb]`_^Z\[YopqrVXWstuvwxyz{|}~VXWYZ\[]`_^a nmlkjihgfedcbopqrstuvwxyz{|}~None./23468 > ? @ A B C D E F   > ? @ A B C D E FNone./23468None +-./23468F)Miscellaneous information about functions.possible solutions to a metavariable in a type(a function with a partially defined type&)the bool is whether to search recursively9High level language terms:'%runTactics tm - New-style proof script;~Term<`(Term [: Term])=)never run implicit converions on the term>/dump a trace of unifications when building term?#Preferences for explicit namespaces@5To mark a coerced argument, so as not to coerce twiceA6Special case for declaring when an LHS can't typecheckBError to report on elaborationCAs PProof, but no auto solvingD Proof scriptEA metavariable, ?nameGIdiom bracketsH Do notationI UnderscoreJ Builtin typesK)quoteGoal, used for %reflection functionsL Some universeM typeNIrrelevant or hidden patternO'True if only one may work. (| A, B, C|)P@-pattern, valid LHS onlyQpA dependent pair (tm : a ** b) and whether it's a sigma type or a pair that inhabits one (solved by elaboration)ROA pair (a, b) and whether it's a product type or a pair (solved by elaboration)S+"rewrite" syntax, with optional result typeT"Heterogeneous equality type: A = BU.Solve this dictionary by type class resolutionV(The canonical proof of the equality typeW Unit type..?XWA case expression. Args are source location, scrutinee, and a list of pattern/RHS pairsY$Make an application by type matchingZimplicitly bound application[BImplicit argument application (introduced during elaboration only)\e.g. IO (), List Char, length x]Term with explicit type^ A let binding_(n : t1) -> t2`A lambda abstractionaA pattern variablebA name to be defined latercA reference to a variabled5Inclusion of a core term into the high-level languagelData declarationm Placeholder. for data whose constructors are defined laternData declarationoThe name of the datatypepType constructorq ConstructorsrIOne 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)vA normal top-level definition.}\Top-level declarations such as compiler directives, definitions, datatypes and typeclasses.~WSource-to-source transformation rule. If bool is True, lhs and rhs must be convertible>Type provider. The first t is the type, the second is the termSCompiler directive. The parser inserts the corresponding action in the Idris monad. Mutual blockSyntax definitionDSL declarationInstance declaration: arguments are documentation, syntax info, source location, constraints, class name, parameters, full instance type, optional explicit name, and definitionsType class: arguments are documentation, syntax info, source location, constraints, class name, parameters, method declarationsRecord declaration New namespace Params blockData declaration.Top level constantPattern clause PostulateType declarationFixity declarationType provider - what to provide$goal type must be Type, so only term2the first is the goal type, the second is the termData declaration options8Set if a case function should be generated for data type6Set if an eliminator should be generated for data type'Set if the the data-type is coinductive6^ attempt to reverse normalise before showing in error=^ an error handler for use with the ErrorReflection extension8Automatically issue "solve" tactic in interactive prover#Automatically adjust terminal width REPL commandsjthe first bool is whether to update, the second is whether to search recursively (i.e. for the arguments)5Each kV should be either a type declaration (at most one) or a clause defining the same name.?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))C6The name is the special name used to track module docsv(The global state used in the Idris monadx/All the currently defined names and their termsyGA list of universe constraints and their corresponding source locationsz!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, and the Bool is whether :p is allowedThe 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-defined)Stack of names currently being elaborated)Symbol table (preserves sharing of names)Functions with ExportListHow wide is the console?+Attempt to determine width, or 80 otherwise%Manually specified - must be positive:Have pretty-printer assume that lines should not be brokenThe output mode in use1Send IDE output for some request ID to the handle(Print user output directly to the handle^ whether to show implicits^ show implicits,automatically apply "solve" tactic in provere.g. Builtins+Prelude/Pretty printing options with default verbosity.0Pretty printing options with the most verbosity.8Get pretty printing options from the big options record.7Get pretty printing options from an idris state record."The initial state for the compiler+Get the highest FC in a term, if one exists/The special name to be used in the module documentation context - not for use in the main definition context. The namespace around it will determine the module to which the docs adhere.4Colourise 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.6^Pretty-print a high-level closed Idris term with no information about precedence/associativity78Serialise something to base64 using its Binary instance.4Do the right thing for rendering a term in an IState8MPretty-print a high-level Idris term in some bindings context with infix info9UDetermine whether a name was the one inserted for a hole or guess by the delaborator:QCheck whether a PTerm has been delaborated from a Term containing a Hole or Guess;EPretty-printer helper for names that attaches the correct annotationsEShow Idris nameG&Show a term with implicits, no colours      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456^ pretty printing options^ the term to pretty-print78^ 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-print9:;E^ 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<=>?@ABCDE:^ 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 showF@^ the Idris state, for information about identifiers and colours^ the term to showGHIJKLMNOPQRSTUVWXYZ[\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNvwxyz{|}~\qutsrpohijklmn@gfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA?<>=9;:876543210/.-,+*)('&%$#"!      [ZY}~xyz{|wrvutslnmopqopkji ehgf9dcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;: 876543210/.-,+*)('&%$#"! X     WV    !"#$%&'()*+,-./0123UTSRQ456789:;<=>?P@ABCDEFGOHIJKLMN       (876543210/.-,+*)('&%$#"! 9+dcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:ehgfijklnmopqoprvutswxyz{|}~:;876543210/.-,+*)('&%$#"!      9;:<>=?@'gfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBAhijklmnopqutsrvEwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\None./23468&]^_`abcdefghijklmnopqrstuvwxyz{|}~&~}|{zyxwvutsrqponmlkjihgfedcba`_^]&]^_`abcdefghijklmnopqrstuvwxyz{|}~None./23468None./23468    None./23468None./23468&&& None -./23468FNone./23468 None./23468!None./23468"None ./23468F1^ the Int is the column count for pretty-printing&^ Recursive?, line, name, hints, depthaThe version of the IDE mode command set. Increment this when you change it so clients can adapt.M      G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d/     /     )      G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d#None -./23468F>wAdds error handlers for a particular function and argument. If names are ambiguous, all matching handlers are updated.\OA version of liftIO that puts errors into the exception type of the Idris monadi5Save information about a name that is not yet definedq+Tell clients how much was parsed and loadedAdd 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). !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiThe 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 allowedjklmnopqrstuvwxyz{|}~J      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Į !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$None ./23468FHM\ e f g h i j k l m n o p q r s t u v w x y z { | } ~   U e f g h i j k l m n o p q r s t u v w x y z { | } ~  %None ./23468F$Replace DSL-bound variable in a term&None ./23468F   'None ./23468F(None./234689Desugar by changing x@y on lhs to let x = y in ... or rhs QReplace _-patterns under @-patterns with fresh names that can be used on the RHS  )None ./23468F  *None./23468Find 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 aproposbFind modules whose names or docstrings contain all the space-delimited components of some string.     +None ./23468F,None ./23468F How far to indent sub-errors aActually indent a sub-error - no line at end because a newline can end multiple layers of indent+Pretty-print a core term using delaboration"Pretty-print the type of some name Make sure the machine invented names are shown helpfully to the user, so that any names which differ internally also differ visibly"implicit arguments to type, if anyuse full names#Don't treat metavariables specially           -None ./23468F A 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 argumentSData type representing binding-time annotations for partial evaluation of arguments3Erasable dynamic argument (found under unification)Explicit dynamic argument Explicit static argument Implicit dynamic argument Implicit static argument Partially 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. Specialises the type of a partially evaluated TT function returning a pair of the specialised type and the types of expected arguments. Creates an Idris type declaration given current state and a specialised TT function application type. Can be used in combination with the output of  .uThis should: specialise any static argument position, then generalise over any function applications in the result. >Checks if a given argument is a type class constraint argument Checks 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). Creates 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 function                                 .None -./23468FU NDetermine a truncation function depending how much docs the user wants to see WGiven a fully-qualified, disambiguated name, construct the documentation object for it                                  /None./23468    0None./23468        1None./23468                2None ./23468F8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE          2      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE3None./23468 !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   ! " # $ % & ' ( ) * + , - . / 0 1 2 3   ! " # $ % & ' ( ) * + , - . / 0 1 2 3   ! " # $ % & ' ( ) * + , - . / 0 1 2   ! " # $ % & ' ( ) * + , - . / 0 1 2 34None +./23468 >GIssue a warning on "with"-terms whose namespace is empty or nonexistent 4 5 6 7 8 9 : ; < = > 4 5 6 7 8 9 : ; < = > 4 5 6 7 8 9 : ; < = > 4 5 6 7 8 9 : ; < = >5None ./23468:FM ? ? ? ?6None ./23468F EPGet the list of (index, name) of inaccessible arguments from an elaborated type FFGet the list of (index, name) of inaccessible arguments from the type. HCheck 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!) IXReturn whether inferred term is different from given term (as above, but return a Bool) JCheck 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. @ 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 @ 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 @ 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 @ A B C D E F G H I J K L M N O P Q R S T U V W X Y7None./23468 ^*Get the index file name for a package name Z [ \ ] ^ _ ` a b c d e f g h i j Z [ \ ] ^ _ ` a b c d e f g h i j Z ] \ [ ^ _ ` a b c d e f g h i j Z ] \ [ ^ _ ` a b c d e f g h i j8None -./23468F m2Wrap a type provider in the type of type providers n\Handle an error, if the type provider returned an error. Otherwise return the provided term. k l mFGH n k l m n m n k l k l mFGH n9None ./23468F oI p o p o p oI p:None ./23468FJKLMNOPQRSTUVWX qYZ[ r\ q r q rJKLMNOPQRSTUWVX qYZ[ r\;None ./23468F s t]^_`abcdef s t s t s t]^_`abcdef<None ./23468F uGiven a mainF term to compiler, return the IRs which can be used to generate code.ghij u vklmnopqrstuv u v u vghij u vklmnopqrstuv=None  ./23468F zFunction 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 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 (%runTactics) Prefix a name with the Language.Reflection 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 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.` w x y z { | } ~  ` w x y z { | } ~  `  w x y z { | } ~ P w x y z { | } ~   >None ./23468F Generate a pattern from an  impossible LHS.nWe need this to eliminate the pattern clauses which have been provided explicitly from new clause generation. Given a list of LHSs, generate a extra clauses which cover the remaining cases. The ones which haven't been provided are marked absurd7 so that the checker will make sure they can't happen.dThis will only work after the given clauses have been typechecked and the names are fully explicit!     ?None ./23468F    @None ./23468F IElaborate a top-level type declaration - for example, "foo : Int -> Int".    ANone ./23468F    BNone ./23468F \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    CNone ./23468Fw xy  w xyDNone ./23468F    ENone ./23468Fz{|} ~  z}|{ ~FNone ./23468F    GNone ./23468F Elaborate a type provider    HNone -./23468F 'Return the elaborated term which calls main Elaborate primitives                    INone&*./23468BF; 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 &Parses string as a token 'Parses a reserved identifier (Parses a reserved operator *6Parses an identifier with possible namespace as a name +1Parses an string possibly prefixed by a namespace , Parses a name -List of all initial segments in ascending order of a list. Every such initial segment ends right before an element satisfying the given condition. . Create a D from a pair of strings representing a base name and its namespace. 3Parses an operator 4SGet filename from position (returns "(interactive)" when no source file is given) 5Get line number from position 6 Get column number from position 7Get file position as FC 8Bind constraints to term 9Push 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 A9Checks if the following character matches provided parser BParses a start of block CParses an end of block DParses a terminator EParses and keeps a terminator F-Checks if application expression does not end G"Checks that it is not end of block H?Allows comparison of indent, and fails if property doesn't hold IGreater-than indent property J(Greater-than or equal to indent property KEqual indent property LLess-than indent property M%Less-than or equal to indent property N3Checks that there are no braces that are not closed O7Parses an accessibilty modifier (e.g. public, private) P&Adds accessibility option for function QHAdd accessbility option for data declarations (works for classes too - abstract2 means the data/class is visible but members not) R'Error message with possible fixes list SCollect  with the same function nameJ                   ! " # $ % & ' ( ) * + , - . / 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 TI                   ! " # $ % & ' ( ) * + , - . / 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 SJ     T               ! " # $ % & ' ( ) * + , - . / 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 SG                    ! " # $ % & ' ( ) * + , - . / 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 TJNone ./23468F(4A map from namespace names to information about them2All information to be documented about a namespace7Docstrings containing fully elaborated term annotations@All information to be documented about a single namespace member;Internal representation of a fully qualified namespace name#Either an error message or a result UYGenerates HTML documentation for a series of loaded namespaces and their dependencies.Make an error messageIdrisDoc versionRConverts a Name into a [Text] corresponding to the namespace part of a NS Name.&Retrieves the namespace part of a Name(String to replace for the root namespace Converts a NsName to string form.Fetch info about namespaces and their contentsfRemoves loose class methods and data constructors, leaving them documented only under their parent.9Whether a Name names something which should be documentedWhether a NsItem should be included in the documentation. It must not be Hidden and filterName must return True for the name. Also it must have Docs -- without Docs, nothing can be done.~Finds all namespaces indirectly referred by a set of namespaces. The NsItems of the namespaces are searched for references.1Gets all namespaces directly referred by a NsItemGReturns an NsDict of containing all known namespaces and their contents!Gets the Accessibility for a Name/Simple predicate for whether an NsItem has DocsPredicate saying whether a Name possibly may have docs defined Without this, getDocs from Idris.Docs may fail a pattern match.Retrieves the Docs for a NameExtracts names referred from a type. The covering of all PTerms ensures that we avoid unanticipated cases, though all of them are not needed. The author just did not know which! TODO: Remove unnecessary cases"Shorter name for extractPTermNames%Helper function for extractPTermNames%Helper function for extractPTermNames%Helper function for extractPTermNamesGenerates the actual HTML output based on info from a NsDict A merge of the new docs and any existing docs located in the output dir is attempted. TODO: Ensure the merge always succeeds. Currently the content of 'docs/<builtins>.html'{ may change between runs, thus not always containing all items referred from other namespace .html files.(Over)writes the  'index.html'Z file in the given directory with an (updated) index of namespaces in the documentationdGenerates a HTML file for a namespace and its contents. The location for e.g. Prelude.Algebra is  basePrelude Algebra.htmlEGenerates a relative filepath for a namespace, appending an extensionmGenerates a HTML type signature with proper tags TODO: Turn docstrings into title attributes more robustly,Generates HTML documentation for a function.bGenerates HTML documentation for any Docs type TODO: Generate actual signatures for typeclasses7Generates everything but the actual content of the pageNon-break space characterGReturns a list of namespaces already documented in a IdrisDoc directory?Copies IdrisDoc dependencies such as stylesheets to a directory+ U<IState where all necessary information is extracted from.4List of namespaces to generate documentation for.8The directory to which documentation will be written.Name to convertName to retrieve namespace forNsName to convertIState to fetch info from$List of namespaces to fetch info for9Mapping from namespace name to info about its contentsList to remove orphans fromOrphan-free list Name to checkPredicate resultAccessibility to checkPredicate result)Mappings of namespaces and their contentsSet of namespaces to trace'Set of namespaces which has been traced-Set of namespaces to trace and all traced one7The name to get all directly referred namespaces for+IState containing accessibility informationThe Name to retrieve access forThe NsItem to test The resultThe Name to test The result!IState to extract infomation fromName to load Docs forWhere to extract names fromExtracted namesWhere to extract names fromExtracted names&Needed to determine the types of names$All info from which to generate docs=The base directory to which documentation will be written.1Set of namespace names to include in the index=The base directory to which documentation will be written.&Needed to determine the types of names8The name of the namespace to create documentation forThe contents of the namespace=The base directory to which documentation will be written. Namespace to generate a path forExtension suffix&Needed to determine the types of names%Type to generate type declaration forResulting HTML&Needed to determine the types of namesFunction to generate block forResulting HTML&Needed to determine the types of names)Namespace item to generate HTML block forResulting HTML&Namespace name, unless it is the index Inner HTML%The base directory containing the docs+ directory with existing namespace pages=The base directory to which dependencies should be written U U( UKNone &./23468BF VCreates table for fixity declarations to build expression parser using pre-build and user-defined operator/fixity declarations W(Calculates table for fixtiy declarations XBinary operator YPrefix operator ZBacktick operator [)Operator without fixity (throws an error) \ZParses an operator in function position i.e. enclosed by `()', with an optional namespace  OperatorFront ::= '(' '=' ')' | (Identifier_t )? '(' Operator_t ')' ; ]2Parses a function (either normal name or operator) # FnName ::= Name | OperatorFront; ^Parses a fixity declaration ? Fixity ::= FixityType Natural_t OperatorList Terminator ; _FParses a fixity declaration type (i.e. infix or prefix, associtavity)  FixityType ::= 'infixl' | 'infixr' | 'infix' |  Y ; V W X Y Z [ \ ] ^ _ V W X Y Z [ \ ] ^ _ V W X Y Z [ \ ] ^ _ V W X Y Z [ \ ] ^ _LNone &./23468BF5 `Parses a tactic script  Tactic ::= intro NameList? | intros | refine Name Imp+ | mrefine Name | rewrite Expr |  induction Expr | equiv Expr | 'let' Name : Expr' '=' Expr | 'let' Name '=' Expr | focus Name | exact Expr |  applyTactic Expr | reflect Expr | fill Expr |  Tactic '|'0 Tactic | '{' TacticSeq '}' | compute | trivial | solve | attack |  | term | undo | qed | abandon | : q ; Imp ::= ? | '_'D; TacticSeq ::= Tactic ';' Tactic | Tactic ';' TacticSeq ; 6A specification of the arguments that tactics can take dNames: n1, n2, n3, ... n h Allow implicit type declarations i#Disallow implicit type declarations j Parses an expression as a whole  FullExpr ::= Expr EOF_t; lParses an expression  Expr ::= Pi m4Parses an expression with possible operator applied  OpExpr ::= ; nIParses either an internally defined expression or a user-defined one E Expr' ::= "External (User-defined) Syntax" | InternalExpr; o!Parses a user-defined expression p(Parses a simple user-defined expression qNTries to parse a user-defined expression given a list of syntactic extensions s&Parses a (normal) built-in expression  InternalExpr ::= UnifyLog | RecordType | SimpleExpr | Lambda | QuoteGoal | Let | RewriteTerm | CaseExpr | DoBlock | App ; tParses a case expression  CaseExpr ::= 'case' Expr 'of'# OpenBlock CaseOption+ CloseBlock; u#Parses a case in a case expression  CaseOption ::= Expr '=>' Expr Terminator ; vParses a proof block  ProofExpr ::= proof# OpenBlock Tactic'* CloseBlock ; wParses a tactics block  TacticsExpr :=  ! OpenBlock Tactic'* CloseBlock ; x+Parses a simple expression @ SimpleExpr ::=| ? Name | %  'instance' | Refl} ('{' Expr '}')? | ProofExpr | TacticsExpr | FnName | Idiom | List | Alt | Bracketed | Constant | Type | Void | Quasiquote | Unquote | '_' ; @ yParses an expression in braces  Bracketed ::= '(' Bracketed' z+Parses the rest of an expression in braces = Bracketed' ::= ')' | Expr ')' | ExprList ')' | Expr ? Expr ')' | Operator Expr ')' | Expr Operator ')' | Name : Expr  Expr ')' ; |(Finds optimal type for integer constant }AParses an alternative expression @ Alt ::= '(|' Expr_List '|)';7Expr_List ::= Expr' | Expr' ',' Expr_List ; @ ~+Parses a possibly hidden simple expression  HSimpleExpr ::=  SimpleExpr | SimpleExpr ; 3Parses a unification log expression UnifyLog ::= %   SimpleExpr ; 7Parses a new-style tactics expression RunTactics ::= %   SimpleExpr ; 1Parses a disambiguation expression Disamb ::= %   NameList Expr ; !Parses a no implicits expression  NoImplicits ::= %   SimpleExpr ; )Parses a function application expression  App ::=  mkForeignI Arg Arg* | MatchApp | SimpleExpr Arg* ; MatchApp ::= SimpleExpr <== FnName ; Parses a function argument < Arg ::= ImplicitArg | ConstraintArg | SimpleExpr ; %Parses an implicit function argument  ImplicitArg ::= '{' Name ('=' Expr)? '}' ; HParses 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 (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; Parses a lambda expression  Lambda ::=  TypeOptDeclList '=>' Expr |  SimpleExprList '=>' Expr ;  G SimpleExprList ::= SimpleExpr | SimpleExpr ',' SimpleExprList ; !Parses a term rewrite expression  RewriteTerm ::= rewrite Expr (==> Expr)? 'in' Expr ; !Parses a let binding @ Let ::= 'let' Name TypeSig'? '=' Expr 'in' Expr | 'let' Expr' '=' Expr' 'in' ExprTypeSig' ::= : Expr' ; @ Parses a quote goal QuoteGoal ::=   Name by Expr 'in' Expr ; !Parses a dependent type signature Pi ::= PiOpts Static? Pi' Pi' ::= OpExpr ('->'4 Pi)? | '(' TypeDeclList ')' '->'2 Pi | '{' TypeDeclList '}' '->' Pi | '{' auto TypeDeclList '}' '->' Pi | '{'  'default' SimpleExpr TypeDeclList '}' '->' Pi ; +Parses Possible Options for Pi Expressions  PiOpts ::= ? Parses a type constraint list )ConstraintList ::= '(' Expr_List ')' '=>' | Expr '=>' ; Parses a type declaration list E TypeDeclList ::= FunctionSignatureList | NameList TypeSig ; ZFunctionSignatureList ::= Name TypeSig | Name TypeSig ',' FunctionSignatureList ; 8Parses a type declaration list with optional parameters k TypeOptDeclList ::= NameOrPlaceholder TypeSig? | NameOrPlaceholder TypeSig? ',' TypeOptDeclList ; NameOrPlaceHolder ::= Name | '_'; `Parses a list literal expression e.g. [1,2,3] or a comprehension [ (x, y) | x <- xs , y <- ys ] ( ListExpr ::= '[' ']' | '[' Expr '|'# DoList ']' | '[' ExprList ']' ;  ) DoList ::= Do | Do ',' DoList ;  / ExprList ::= Expr | Expr ',' ExprList ; Parses a do-block  Do' ::= Do KeepTerminator; DoBlock ::= 'do' OpenBlock Do'+ CloseBlock ; 'Parses an expression inside a do block  Do ::= 'let' Name TypeSig'? '=' Expr | 'let' Expr' '=' Expr | Name '<-' Expr | Expr' '<-' Expr | Expr ; 'Parses an expression in idiom brackets  Idiom ::= '[|' Expr '|]'; 'Parses a constant or literal expression Constant ::=  |  |  |  |  | Ptr |  ManagedPtr | prim__UnsafeBuffer | Bits8 | Bits16 | Bits32 | Bits64 | Bits8x16 | Bits16x8 | Bits32x4 | Bits64x2L | Float_t | Natural_t | VerbatimString_t | String_t | Char_t ; ;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 wholeD ` 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 { | } ~  D ` 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 { | } ~  D h i j k l m n o p q e g f r s t u v w x y z { | } ~  ` d c b a > ` d c b a e g f h i j k l m n o p q r s t u v w x y z { | } ~  MNone &./23468BF 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; NNone./23468 *Load an entire package from its index file 0True = reexport, False = make everything private  Reexporting  Reexporting?                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >b                  > = < ; : 9 8 7 6 5 4 3 2 1 0 / .  - , + * ) ( ' & % $ # " !                 f ,                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >ONone &./23468BF2 ?Parses module definition % ModuleHeader ::= DocComment_t? 'module' Identifier_t ';'?; @Parses an import statement  Import ::= 'import' Identifier_t ';'?; AParses program source  Prog ::= Decl* EOF; BParses a top-level declaration Decl ::= Decl' | Using | Params | Mutual | Namespace | Class | Instance | DSL | Directive | Provider | Transform | Import! ; C9Parses a top-level declaration with possible syntax sugar IDecl' ::= Fixity | FunDecl' | Data | Record | SyntaxDecl ; DIParses a syntax extension declaration (and adds the rule to parser state)  SyntaxDecl ::= SyntaxRule; E Extend an v' with a new syntax extension. See also  F. FLike  E, but no effect on the IBC. G%Parses a syntax extension declaration SyntaxRuleOpts ::= term |  X;  !SyntaxRule ::= SyntaxRuleOpts? syntax SyntaxSym+ '=' TypeExpr Terminator; SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; HGParses a syntax symbol (either binding variable, keyword or expression) SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; I8Parses a function declaration with possible syntax sugar  FunDecl ::= FunDecl'; JParses a function declaration } FunDecl' ::= DocComment_t? FnOpts* Accessibility? FnOpts* FnName TypeSig Terminator | Postulate | Pattern | CAF ; K-Parses function options given initial options  FnOpts ::= total | partial |  | %  no_implicit | %  assert_total | %  error_handler | %  reflection | % a '[' NameTimesList? ']' ;  NameTimes ::= FnName Natural?; BNameTimesList ::= NameTimes | NameTimes ',' NameTimesList ; LParses a postulate Postulate ::= DocComment_t?  L= FnOpts* Accesibility? FnOpts* FnName TypeSig Terminator ; MParses a using declaration  Using ::= 6 '(' UsingDeclList ')' OpenBlock Decl* CloseBlock ; NParses a parameters declaration  Params ::=  parameters5 '(' TypeDeclList ')' OpenBlock Decl* CloseBlock ; O>Parses a mutual declaration (for mutually recursive functions)  Mutual ::=  O OpenBlock Decl* CloseBlock ; PParses a namespace declaration Namespace ::=  P+ identifier OpenBlock Decl+ CloseBlock ; Q&Parses a methods block (for instances)  InstanceBlock ::= 'where' OpenBlock FnDecl* CloseBlock R7Parses a methods and instances block (for type classes) 2MethodOrInstance ::= FnDecl | Instance ; ClassBlock ::= 'where', OpenBlock MethodOrInstance* CloseBlock ; SParses a type class declaration (ClassArgument ::= Name | '(' Name : Expr ')' ; )Class ::= DocComment_t? Accessibility? 'class'5 ConstraintList? Name ClassArgument* ClassBlock? ; T(Parses a type class instance declaration ! Instance ::= DocComment_t?  'instance'E InstanceName? ConstraintList? Name SimpleExpr* InstanceBlock? ; InstanceName ::= '[' Name ']'; UParse a docstring VParses a using declaration list <UsingDeclList ::= UsingDeclList' | NameList TypeSig ;  DUsingDeclList' ::= UsingDecl | UsingDecl ',' UsingDeclList' ; .NameList ::= Name | Name ',' NameList ; WParses a using declaration 6UsingDecl ::= FnName TypeSig | FnName FnName+ ; XParse a clause with patterns Pattern ::= Clause; Y-Parse a constant applicative form declaration CAF ::= 'let' FnName '=' Expr Terminator; ZParse 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  ; bParses a totality  Totality ::= partial | total cParses a type provider Provider ::= DocComment_t? % provide' Provider_What? '(' FnName TypeSig ')' with Expr; ProviderWhat ::= proof | term | 'type' |  L dParses a transform Transform ::= %  d Expr ==> Expr e Parses an expression from input fParses a constant form input gParses a tactic from input hParse module header and imports i-There should be a better way of doing this... jCCheck if the coloring matches the options and corrects if necessary kUA program is a list of declarations, possibly with associated documentation strings. l<Load idris module and show error if something wrong happens mLoad idris module nLoad idris code from file oALoad idris source code and show error if something wrong happens pLoad Idris source code qAdds names to hide list 3 ? @ 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                   ! " # $ % & ' ( ) * + , - . / 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 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 m n o p q3 ? @ 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 q3 ? @ 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 qPNone ./23468F r line numbervariable name of file s t u v(line number that the type is declared on Function nameSource file name w%line number that the type is declared Function nameSource file name x y r s t u v w x y r s v w x y t u r s t u v w x yQNone ./23468F z { | } ~   z { | } ~   z { | } ~  z { | } ~  RNone./23468(   ( SNone./23468mConvert a name into a string usable for completion. Filters out names that users probably don't want to see.>Get the user-visible names from the current interpreter state.4Get the completion function for a particular command .Complete REPL commands and defined identifiers $Complete tactics and their arguments  &The names of current local assumptions    TNone./23468         UNone ./23468M;The state corresponding to an attempted match of two types.#names which have yet to be resolvedOarguments and typeclass constraints for each type which have yet to be resolvedthe score so far all names that have been used A list of typeclass constraints GA directed acyclic graph representing the arguments to a function The B represents the position of the argument (1st argument, 2nd, etc.) RKeeps a record of the modifications made to match one type signature with another transposition of arguments#application of symmetry of equality"directional" modificationsHomogenous tuples)Asymmetric modifications to keep track of<Conduct a type-directed search using a given match predicate Our default search predicate..reverse the edges for a directed acyclic graphCompute a directed acyclic graph corresponding to the arguments of a function. returns [(the name and type of the bound variable the names in the type of the bound variable)]Collect the names and types of all the free variables The Boolean indicates those variables which are determined due to injectivity I have not given nearly enough thought to know whether this is correct+Remove a node from a directed acyclic graph=Could be a functor instance, but let's avoid name overloadinggThis allows the search to stop expanding on a certain state if its score is already too high. Returns > if the algorithm should keep exploring from this state, and  otherwise.  Convert a   to an B 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.4      !"#$%  &'filter to remove some arguments()* +,-./01234567  $      !"#$%  &'()* +,-./01234567VNone ./23468F WNone -./23468F  Run the REPL Run the REPL server (Run a command on the server on localhost Run the IdeMode Run IDEMode commands 7Show a term for IDEMode with the specified implicitness 8The 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 dir 9Locate the platform-specific location for the init script Run the initialisation script sReturns None if given an Opt which is not PkgMkDoc Otherwise returns Just x, where x is the contents of PkgMkDocA The initial stateThe loaded modulesThe file to edit (with :e) ^ The handle for communication$^ The continuation ID for the client^ The original IState^ The current open file^ The currently loaded modules^ The command to process Opt to extractResult the option to extractthe package file to test A A A XNone ./23468 `None ./2346889:;<=>?@ABCDEFGHI89:;<=>?@ABCDEFGH8 9:;<=>?@ABCDEFGHIYNone ./23468 +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.    Jabcdefghijklmnopqrstuvwxyz{|}~gqr]]]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q q r s t u v w x y z { | } ~                                                                                                                                                  0 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS*TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Z< $      !"#$%&'()*+,-./00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Nabcde)*SIfghEOijklR789m:n4o?pqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?   !!!!!!!! ! ! ! ! !!"""""4"""""7"8""A""9"""C"f""E"""" "!"""#"$"%""""&"'""(")"*"+","-"."/"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 -2 .2 /2 02 12 23 33 43 53 63 73 83 93 :3 ;3 <3 =3 >3 ?3 @3 A3 B3 C3 D3 E3 F3 G3 H4 I4 J4 K4 L4 M4 N4 O4 P4 Q4 R4 S5 T6 U6 V6 W6 X6 Y6 Z6 [6 \6 ]6 ^6 _6 `6 a6 b6 c6 d6 e6 f6 g6 h6 i6 j6 k6 l6 m6 n7 o7 p7 q7 r7 s7 t7 u7 v7 w7 x7 y7 z7 {7 |7 }7 ~7 8 8 8 8 9 9 : : ; ; < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > > > > > > > > > > > > > > > > > > > > > > > > > > ? ? ? @ @ @ @ A B B B B B B C D E F G H H H H H H I I I I I I !I "I #I $I %I &I 'I (I )I *I +I ,I -I .I /I 0I 1I 2I 3I 4I 5I 6I 7I 8I 9I :I ;I <I =I >I ?I @I AI BI CI DI EI FI GI_I HI II JII KI LI MI NI OI PI QI RI SI TI UI VI WI XI YI ZI [I \I ]I ^I _I `I aI bI cJ dK eK fK gK hK iK jK kK lK mK nL oL pL qL rL sL tL uL vL wL xL yL zL {L |L }L ~L L L L L L L L L L L L L L L LL L L L LL L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L M M M M M M M M M N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N !N "N #N $N %N &N 'N (N )N *N +N ,N -N .N /N 0N 1N 2N 3N 4N 5N 6N 7N 8N 9N :N ;N <N =N >N ?N @N AN BN CN DN EN FN GN HN IN JO KO LO MO NO OO PO QO RO SO TO UO VO WO XO YOO ZOO [O \O ]O ^O _O `O aO bO cO dO eO fO gO hO iO jO kO lO mO nO oO pO qO rO sO tO uO vO wO xO yO zO {P |P }P ~P P P P P Q Q Q Q Q Q Q R R R S S T T T T T T T T U U U V V V V V V V V V V W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W X X X X X X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y YZ Z [ \ ]] ] ] ] ] ] ] ] ]         ^ ^ ^ ^ ^ ^ ^                  !   "   #   $   %   &   '   (   )   *   +   ,   4   -   .   /     0     1   2   3   2   1   4   5   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  {  |  }  ~      [     C P Q h  y                    *                                 w                                       " " " " " " " " " " " " " " " " !" "" #" $" %" &" '" (" )" *" +" ," -" ." /$ 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$ {$ |$ }$ ~$ $ $ $ ( ( ) ) ) ) *9* * * * * * * * * * * * , , L, , , , , , , , , , , , - - - - - . . . . . . . / / / / / 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2222222222 2 2 8 8 8 9 : u:::::::::: 0::::::::;;; ;!;";#;$;%;&;'< u<<<<(<)<*<+< <,<-<.</<0<1<2C3C4C5E6E7E8E9E:F;J<J=J>J?J@JAJBJJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ[J\J]J^J_J`JaJ=JbJcdefghijkdlmdnopqrstustvstwdexPyPzP{P|P|P P}P~PPPPPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSS SSSS SSSSSSSSSSSSSTTUUVUUUUUUUUUUUUUUUUUUststUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`````````````````` c idris-0.9.17IRTS.JavaScript.AST IRTS.System Idris.HelpUtil.ScreenSize Idris.Colours Util.SystemUtil.DynamicLinker Idris.Core.TTIdris.Core.CaseTreeIdris.Core.EvaluateIdris.Core.TypecheckIdris.Core.ConstraintsIdris.Core.DeepSeqIdris.Core.ProofTermIdris.Core.UnifyIdris.Core.ProofStateIdris.Core.Elaborate IRTS.LangIdris.Docstrings Idris.UnlitIRTS.DefunctionaliseIRTS.SimplifiedIRTS.CodegenCommonIdris.AbsSyntaxTree Idris.DeepSeqIdris.ASTUtilsIdris.Reflection IRTS.BCImp IRTS.Bytecode IRTS.LangOpts IRTS.DumpBC IRTS.InlinerIdris.Core.Binary Idris.IdeModeIdris.AbsSyntaxIdris.Primitives Idris.DSLIdris.DataOpts Idris.InlinerIdris.Elab.AsPatIdris.Transforms Idris.AproposIdris.ErrReverseIdris.DelaborateIdris.PartialEval Idris.DocsIdris.ElabQuasiquoteIdris.WhoCalls IRTS.CodegenCIRTS.CodegenJavaScript Idris.Output Idris.ErrorIdris.Core.ExecuteIdris.Elab.Utils Idris.ImportsIdris.ProvidersIdris.ProofSearch Idris.Erasure IRTS.Exports IRTS.CompilerIdris.ElabTermIdris.CoverageIdris.Elab.ValueIdris.Elab.TypeIdris.Elab.TransformIdris.Elab.ClauseIdris.Elab.DataIdris.Elab.RecordIdris.Elab.ClassIdris.Elab.InstanceIdris.Elab.ProviderIdris.ElabDeclsIdris.ParseHelpersIdris.IdrisDocIdris.ParseOpsIdris.ParseExprIdris.ParseData Idris.IBC Idris.ParserIdris.CaseSplitIdris.InteractiveIdris.REPLParserIdris.Completion Idris.ChaserIdris.TypeSearch Idris.Prover Idris.REPLIdris.CmdOptions Pkg.PackageUtil.Net Version_idris Util.Zlib Paths_idris Util.PrettygetFC Pkg.PParserFFIFFIErrorFFIArgFFICodeJSJSNoop JSAnnotationJSFFIJSWhileJSParens JSTernaryJSCondJSSwitchJSIndexJSAllocJSAssignJSWordJSNumJSStringJSArrayJSFalseJSTrueJSThis JSUndefinedJSNullJSProjJSPostOpJSPreOpJSBinOpJSErrorJSNewJSAppJSReturnJSSeqJSType JSFunctionJSIdentJSRaw JSConstructorJSWord64JSWord32JSWord16JSWord8 JSIntegerJSFloatJSInt JSBigIntExprJSBigIntJSBigOne JSBigZero JSForgotTyJSPtrTyJSCharTy JSFloatTy JSIntegerTy JSStringTyJSIntTyffi compileJS compileJS' jsInstanceOfjsOrjsAndjsMethjsCalljsTypeOfjsEqjsNotEq jsIsNumberjsIsNulljsBigInt jsUnPackBits jsPackUBits8 jsPackUBits16 jsPackUBits32 jsPackSBits8 jsPackSBits16 jsPackSBits32$fShowJSAnnotationversion getDataDirgetDataFileNameCmdArgSeqArgs OptionalArgManyArgsDeclArgConsoleWidthArgSpecialHeaderArgNoArg ColourArg MetaVarArg OptionArg NamespaceArg NumberArgPkgArgs ModuleArgFileArgNameArgExprArg extraHelpgetScreenWidth ColourTypePostulateColour PromptColour DataColour TypeColourFunctionColourImplicitColourBoundVarColour KeywordColour ColourTheme keywordColourboundVarColourimplicitColourfunctionColour typeColour dataColour promptColourpostulateColour IdrisColourcolourvivid underlinebolditalic defaultTheme colourise colouriseKwdcolouriseBoundcolouriseImplicit colouriseFun colouriseType colouriseDatacolourisePromptcolouriseKeywordcolourisePostulatecatchIO isWindowstempfile withTempdirrmFilegetCCgetMvn getTargetDir getLibFlagsgetIdrisLibDir getIncFlagsgetExecutablePom ForeignFunFunfun_name fun_handle DynamicLibLiblib_name lib_handle tryLoadLib tryLoadFnWkEnvWkEnvTTWkEnvTypeTermDatatypeData d_typename d_typetagd_typed_uniqued_consEnvTTTermSizetermsizeTTUTypeTType ImpossibleErasedProjConstantAppBindVPNameTypeTConDConnt_tagnt_arity nt_uniqueRefBoundUCs UConstraintULEULTUExpUValUVarBinderPVTyPVarGuessGHoleenvlenHoleNLetLet binderValPi binderImpl binderKindLambinderTy ImplicitInfoImpl tcinstanceRaw RConstantRForceRUTypeRTypeRAppRBindVarUniverseAllTypes UniqueTypeNullTypeConstForgotVoidType BufferTypeManagedPtrTypePtrTypeTheWorld WorldTypeStrTypeATypeB64VB32VB16VB8VB64B32B16B8StrChFlBIIArithTyATFloatATIntIntTyITVecITCharITBigITNativeITFixedNativeTyIT64IT32IT16IT8Ctxt SpecialName InstanceCtorNElimNCaseNMethodNParentN InstanceNWithNWhereNNameSymRefSNNErasedMNNSUNTCErrorOKErrErr' ElabDebugReflectionFailedReflectionError LoadingFailed ProviderErrorElaboratingArg ElaboratingAt NoRewritingProofSearchFailAlreadyDefinedNonCollapsiblePostulate CantMatch InaccessibleProgramLineCommentUniqueKindError UniqueError UniverseError NoEliminatorIncompleteTermCantResolveAlts InvalidTCArg CantResolve NotInjective NoTypeDecl WithFnTypeNoSuchVariable CantIntroduceTooManyArguments NotEqualityNonFunctionType CantInferType UnifyScope CantSolveGoal CantConvert InfiniteUnify CantUnify InternalMsgMsg Provenance SourceTermGivenVal InferredVal TooManyArgs ExpectedTypeErrorReportPart SubReportTermPartNamePartTextPartOutputAnnotationAnnErrAnnSearchResultAnnTerm AnnTextFmtAnnFC AnnKeywordAnnTypeAnnDataAnnConst AnnBoundNameAnnNameTextFormatting UnderlineText ItalicTextBoldText NameOutputPostulateOutput MetavarOutput DataOutput FunOutput TypeOutputFC'unwrapFCFCfc_fnamefc_startfc_endOption CheckConv TTypeInTTypeemptyFCfileFCbindTCscoretfailfailMsgtrundiscardshowSeppmap traceWhentxtstrtnulltheadsUNsNSsMN sInstanceNsParentNshowCG emptyContextmapCtxttcname implicitablensrootaddDeflookupCtxtName lookupCtxtlookupCtxtExactdeleteDefExact updateDeftoAlistaddAlist intTyName nativeTyWidth intTyWidth isTypeConst constIsType constDocsfmapMB raw_apply raw_unapply isInjective vinstances instantiatesubstV explicitNamespToVpToV' addBinderpToVsvToPfinalise pEraseTypesubstpsubst substNames substTerm occurrences noOccurrence freeNamesarityunApplymkAppunListforget safeForget forgetEnv safeForgetEnvbindAll bindTyArgs getArgTysgetRetTyuniqueNameFrom uniqueName uniqueNameSet uniqueBindersnextName itBitsNameshowEnv showEnvDbg prettyEnvshowEnv'pureTermweakenTm weakenEnv weakenTmEnv orderPatsrefsInliftPats allTTNamespprintTT bindingOf $fShowConst$fShowTT$fEqTT $fPrettyTTo $fSizedTT $fTermSizeTT $fTermSize[] $fEqNameType $fPrettyNameTypeOutputAnnotation$fSizedNameType$fShowUConstraint $fShowUExp $fBinaryUExp $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$fEqFC'$fEqFCPhaseRunTime CompileTime ErasureInfoCaseTreeCaseAltCaseAlt' DefaultCaseSucCase ConstCaseFnCaseConCaseSCCaseTypeShared UpdatableSC'ImpossibleCase UnmatchedCaseSTermProjCaseCaseCaseDefsmall namesUsed findCalls findUsedArgs simpleCasesubstSCsubstAltmkForceContext uconstraints next_tvar definitionsMetaInformationDataMIEmptyMIPReason NotProductiveMutual BelieveMe ExternalIOUseUndef NotPositive NotCoveringItselfOtherTotality UncheckedPartial ProductiveTotal AccessibilityHiddenFrozenPublicCaseInfocase_inlinablecase_alwaysinline tc_dictionaryCaseDefscases_totcheckcases_compiletime cases_inlined cases_runtimeDefCaseOpOperatorTyDeclFunctionQuotequoteValueVTmpVProj VConstant VImpossibleVErasedVUTypeVTypeVAppVBLetVBindVVVPinitEval normaliseC normaliseAll normalisenormaliseTrace 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 lookupTotallookupMetaInformationlookupNameTotal lookupVal lookupTyEnvuniqueNameCtxtuniqueBindersCtxt UniqueUseManyLendOnlyOnceNever convertsCconvertsisHoleerrEnvisTyperecheckrecheck_borrowingcheckcheck' checkUniqueucheck$fNFDataCaseAlt' $fNFDataSC'$fNFDataCaseDefs$fNFDataCaseInfo $fNFDataDef$fNFDataMetaInformation$fNFDataPReason$fNFDataTotality$fNFDataAccessibility $fNFDataTT $fNFDataConst$fNFDataArithTy $fNFDataIntTy$fNFDataNativeTy$fNFDataNameType $fNFDataUExp$fNFDataBinder$fNFDataImplicitInfo $fNFDataErr'$fNFDataProvenance $fNFDataFC $fNFDataRaw$fNFDataUniverse$fNFDataSpecialName $fNFDataNameGoalGDpremisesgoalType RunTactic' ProofTermrefocus mkProofTerm getProofTermupdateSolvedTermupdateSolvedTerm' updateSolvedgoalatHolebound_in bound_in_termFails FailContextfail_sourcelocfail_fn fail_paramFailAtUnifyMatch unrecoverable match_unifyunifyTacticQEDUndo ProofState UnifyGoal UnifyProblems MatchProblemsMoveLast SetInjectiveAutoArgInstance DeferTypeDeferFocusPatBindPatVarEquivCaseTac InductionRewrite ExpandLetLetBindForallIntroTyIntroCheckInEvalIn HNF_ComputeSimplify ComputeLetComputeUnifyAllEndUnify StartUnifySolveRegret CompleteFillPrepFill MatchFillFillExactReorderClaimFnClaimAttackPSthnameholesusednsnextnameptermptype dontunifyunified notunifieddottedsolvedproblems injectivedeferred instancesautospreviouscontextplogunifylogdonerecentswhile_elaboratingnowElaboratingPSdoneElaboratingAppPSdoneElaboratingArgPSnewProof envAtFocus goalAtFocus dropGiven keepGiven getProvenance processTacticElabElab' ElabStateESproof proofFailexplicit saveState loadState getNameFrom setNextNameinitNextNameFromerrAterunrunElabexecElabinitElaborator elaborate updateAuxgetAuxunifyLog getUnifyLogprocessTactic'updatePSnow_elaboratingdone_elaborating_appdone_elaborating_argelaborating_app get_context set_contextget_term update_termget_envget_inj get_holes get_probs get_recentsis_guess get_guessget_type get_type_val get_deferredcheckInjective get_instances get_autos unique_hole unique_hole'eloggetLogattackclaimclaimFn unifyGoalexactfill match_fill prep_fill complete_fillsolve start_unify end_unify unify_allregretcompute computeLet hnf_computeeval_incheck_inintrointroTyforallletbind expandLetrewrite inductioncasetacequivpatvarpatbindfocusmovelastdotterm get_dottermzipHere matchProblems unifyProblemsdefer deferType instanceArgautoArgsetinj proofstatereorder_claimsqedundo prepare_applyapply match_applyapply'apply2 apply_elab checkPiGoal simple_apparg no_errorstry handleErrortry'tryCatchtryWhentryAll prunStateTdebugElaboratorqshow dumpprobs LiftStateLSLOptNoInlineInlineLDefsLDecl LConstructorLFunLAltLAlt' LDefaultCase LConstCaseLConCaseFTypeFAny FManagedPtrFPtrFUnitFString FFunctionIO FFunctionFArith FCallType FConstructorFObjectFStaticPrimFnLNoOp LRegisterPtrLNullPtrLVMPtrLParLForkLPeekLAppend LSystemInfo LAppendBuffer LAllocateLStdErrLStdOutLStdInLStrRev LStrIndexLStrConsLStrTailLStrHead LUpdateVecLIdxVecLMkVecLFNegateLFCeilLFFloorLFSqrtLFATanLFACosLFASinLFTanLFCosLFSinLFLogLFExpLBitCast LWriteFile LReadFile LWriteStrLReadStrLIntChLChInt LStrFloat LFloatStrLStrIntLIntStr LFloatInt LIntFloatLStrLenLStrEqLStrLt LStrConcatLTruncLZExtLSExtLSGeLSGtLSLeLSLtLGeLGtLLeLLtLEqLASHRLLSHRLSHLLComplLXOrLOrLAndLSRemLURemLSDivLUDivLTimesLMinusLPlus ExportIFaceExport ExportFun ExportDataFDescFAppFIOFUnknownFStrFConLExpLErrorLNothingLOpLForeignLConstLCaseLConLProjLLamLLetLForceLLazyExpLLazyAppLAppLVLVarGlobLoc EndiannessLEBENativeaddTagslnameliftAll lambdaLift getNextNameaddFnlift allocUniqueusedArgusedIn $fShowLExpRawHtmlEntityImageLinkCodeStrongEmph LineBreak SoftBreakSpaceBlockHRule HtmlBlock CodeBlockList BlockquoteHeaderPara Docstring DocStringDocTermFailingExampleChecked renderDocTermcheckDocstringparseDocstringrenderDocstringoverviewemptyDocstring nullDocstringnoDocs containsText renderHtml annotCodeunlit EvalApply ApplyCaseEvalCaseDDefsDDecl DConstructorDFunDAlt DDefaultCase DConstCaseDConCaseDExpDErrorDNothingDOpDForeignDConstDChkCaseDCaseDCDProjDUpdateDLetDAppDVdefunctionalisegetFnaddAppseEVALtoConstoConsA mkApplyCasemkEvalmkApplydeclaregenArgsmkFnCon mkUnderCon mkBigCasegroupsOf dumpDefuns $fShowDExpSDeclSFunSAlt SDefaultCase SConstCaseSConCaseSExpSErrorSNothingSOpSForeignSConstSProjSChkCaseSCaseSConSUpdateSLetSAppSV simplifyDefs CodeGenerator CodegenInfo outputFile outputType targetTriple targetCPUincludes importDirs compileObjs compileLibs compilerFlags debugLevel simpleDecls defunDecls liftDecls interfaces exportDecls OutputType MavenProject ExecutableObjectDbgLevelTRACEDEBUGNONE environment SyntaxInfoSynusing syn_params syn_namespaceno_imp imp_methods decoration inPatternimplicitAllowedmaxline mut_nestingdsl_infosyn_in_quasiquoteUsing UImplicit SyntaxRulessyntaxRulesListSSymbol SimpleExprExprBindingSymbolKeywordSyntaxRule SynContext AnySyntax TermSyntax PatternSyntaxDSLDSL'dsl_bind dsl_return dsl_applydsl_puredsl_var index_first index_next dsl_lambdadsl_letdsl_piTypeInfoTI con_namescodata data_opts param_pos mutual_typesOptInfoOptimise inaccessible detaggableFnInfo fn_paramsTIData TISolution TIPartial ClassInfoCI instanceName class_methodsclass_defaultsclass_default_superclasses class_paramsclass_instancesclass_determinersPArgArgOptInaccessibleArg HideDisplay AlwaysShowPArg' PTacImplicit getScript PConstraintPExpPImppriority machine_infargoptspnamegetTmPDoPDo'DoLetPDoLetDoBindPDoBindDoExpPTacticPTactic'SourceFCAbandonQedTFailSkipTSearchTDocStrTEvalTCheckGoalTypeReflect ByReflection ApplyTacticTSeqTry ProofSearch TCInstanceTrivialLetTacTyLetTac MatchRefineUnfocusDoUnifyRefineIntrosPTerm PRunTacticsPUnquote PQuasiquote PNoImplicits PUnifyLogPDisambPCoerced PImpossible PElabErrorPTacticsPProofPMetavarPReturnPIdiomPDoBlock Placeholder PConstantPGoal PUniversePTypePHidden PAlternativePAsPDPairPPairPRewritePEq PResolveTCPReflPTruePCase PMatchAppPAppBindPAppImplPAppPTypedPLetPPiPLamPPatvar PInferRefPRefPQuotePunInfo TypeOrTermIsTermIsTypePClausePDataPDeclPData' PLaterdecl PDatadecld_named_tconPClause'PWithRPClauseRPWithElabDEState case_decls delayed_elab new_tyDeclsPDecl' PTransform PProvider PDirectivePMutualPSyntaxPDSL PInstancePClassPRecord PNamespacePParamsPCAFPClauses PPostulatePTyPFix ProvideWhat ProvideWhat' ProvPostulateProvTermDataOptsDataOpt DataErrRevDefaultCaseFunDefaultEliminatorCodataFnOptsFnOpt Constructor Specialise Reflection ErrorReverse ErrorHandlerCExport NoImplicitImplicit Dictionary AssertTotal Coinductive CoveringFn PartialFnTotalFn InlinablePlicityTacImppscript ConstraintExpImppargoptspstaticpparampscopedStaticDynamicFixDeclFixFixityPrefixNInfixNInfixrInfixlprecOptUseConsoleWidth AutoSolve AutoWidth ShowOrigErrClient RemoveOptAddOptOptLevel TargetCPU TargetTripleEvalExprInterpretScript ExtensionOutputTy UseCodegen DumpCases DumpDefunBCAsmPkgWarnOnlyPkgIndexPkgTestPkgMkDocPkgREPLPkgCheckPkgClean PkgInstallPkgBuild ImportDir IBCSubDirPortVerboseShowImpl ErrContext NoCoverage WarnReach WarnPartialDefaultPartial DefaultTotal TypeInTypeTypeCase InterfaceOutputOLoggingNoREPL NoBuiltins NoPrelude NoBasePkgsShowPkgsShowIncs ShowLibdirShowLibs IdemodeSocketIdemode ColourREPLNoBannerQuietFilename OutputFmt LaTeXOutput HTMLOutputCommand DebugUnify DebugInfo TransformInfoPPrintPrintDefWarrantyMakeDocCallsWhoWhoCallsAproposSetConsoleWidthListErrorHandlers ColourOffColourOn SetColourNOPUnsetOptSetOpt DoProofSearch MakeLemmaMakeWith AddMissingAddProofClauseFrom AddClauseFrom CaseSplitAtSearchPattelab ListDynamic DynamicLinkMissingDefn TestInlineHNFSpecLogLvl UniversesProofs ShowProofRmProofAddProofProveMetavarsExecValExecuteCompileEdit ModImportChangeDirectoryLoadReloadTotCheckDocStrCoreCheckUndefineNewDefnEvalHelpQuit HowMuchDocs OverviewDocsFullDocsCodegenBytecodeViaIdrisIBCWrite IBCExportIBCUsage IBCModDocsIBCParsedRegionIBCTotCheckErr IBCPostulateIBCFunctionErrorHandlerIBCErrorHandler IBCLineApp IBCNameHintIBCDef IBCCoercionIBCDocIBCCG IBCErrRevIBCTrans IBCFnInfoIBCFlagsIBCTotalIBCMetaInformation IBCAccess IBCHeaderIBCDyLib IBCCGFlagIBCLibIBCObj IBCImportDir IBCImport IBCKeyword IBCSyntax IBCMetavarIBCOptIBCDataIBCDSL IBCInstanceIBCClass IBCStaticIBCImpIBCFixCGInfoargsdefcallsscgargsusedusedpos UsageReasonSCGEntry SizeChangeUnknownBiggerSameSmallerIStatett_ctxtidris_constraints idris_infixesidris_implicits idris_statics idris_classes idris_dslsidris_optimisationidris_datatypesidris_namehints idris_patdefs idris_flagsidris_callgraphidris_calledgraphidris_docstringsidris_moduledocsidris_tyinfodata idris_fninfoidris_transformsidris_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_postulatesidris_erasureUsedidris_whocallsidris_callswhoidris_repl_defs elab_stack idris_symbols idris_exports ConsoleWidthAutomaticWidthColsWideInfinitelyWide OutputModeIdeMode RawOutput LanguageExtErrorReflection TypeProviders Optimisation PETransformPPOption ppopt_implIOption opt_logLevel 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_optimiseElabInfoEInfoparamsinblockliftname namespaceelabFC rec_elabDeclElabWhatEAllEDefnsETypestoplevel eInfoNames defaultOptsdefaultOptimisedefaultPPOptionverbosePPOptionppOption ppOptionIstprimDefs idrisInit catchError throwError is_scopedimpl forall_impforall_constraintexpl expl_param constrainttacimpl inlinable dictionary initEStatedeclared tldeclareddefinedupdateNupdateNsmapPTpimppexppconstptacimp highestFC syntaxNames syntaxSymbolsemptySyntaxRulesupdateSyntaxRulesinitDSL defaultSyntaxexpandNSbiinferTyinferCon inferDecl inferOptsinfTerminfP getInferTerm getInferType primNamesunitTyunitConfalseDocfalseTypairTypairConupairTyupairConeqTyeqConeqDoceqDecl eqParamDoceqOpts modDocNamesigmaTy existsConpiBindpiBindpconsoleDecorateisPostulateName prettyImp prettyIst pprintPTerm isHoleName containsHole prettyNameshowCImpshowDImp showDecls showDeclImpgetImpsgetExps getShowArgs getConstsgetAllshowNameshowTm showTmImpls getPArity allNamesIn boundNamesInimplicitNamesInnamesIn usedNamesIngetErasureInfo $fSizedPTerm $fShowDoc$fPrettyPTermOutputAnnotation $fShowPData'$fShowPClause' $fShowPDecl' $fShowPTerm $fSizedPArg' $fSizedPDo'$fSizedPTactic' $fOrdFixDecl $fShowFixDecl $fShowFixity $fShowIState$fNFDataSyntaxInfo $fNFDataUsing$fNFDataSSymbol$fNFDataSyntax$fNFDataSynContext $fNFDataDSL'$fNFDataTypeInfo$fNFDataOptInfo$fNFDataClassInfo $fNFDataPArg' $fNFDataPDo'$fNFDataErrorReportPart$fNFDataPTactic' $fNFDataPTerm$fNFDataPData'$fNFDataPClause'$fNFDataPunInfo$fNFDataProvideWhat'$fNFDataPDecl'$fNFDataDataOpt $fNFDataFnOpt$fNFDataPlicity$fNFDataArgOpt$fNFDataStatic$fNFDataFixDecl$fNFDataFixity$fNFDataCGInfo$fNFDataCodegen$fNFDataFnInfo$fNFDataSizeChange$fNFDataDocTerm$fNFDataNumWrapper$fNFDataCodeAttr$fNFDataListType$fNFDataInline $fNFDataBlock$fNFDataOptions$fNFDataDocstringFieldfgetfsetfmodify fgetState fputState fmodifyState ctxt_lookup maybe_defaultist_optimisationopt_inaccessibleopt_detaggable ist_callgraph cg_usedposopts_idrisCmdline known_terms known_classesrepl_definitionsidris_fixities$fCategory*FieldRTyDeclRDeclareRArg RConstraint RImplicit RExplicitargNameargTy rArgToPArgBCRegLRValtoBCbcERRORNULLOPSTOREOLDBASETOPTOPBASEADDTOPRESERVEREBASESLIDE FOREIGNCALLTAILCALLCALL CONSTCASE PROJECTINTOPROJECTCASEMKCONUPDATE ASSIGNCONSTASSIGNTmpTcleanisConstmoveRegassignconCase constCasecaseAltconstAlt defaultAlt inlineAllnextNdoInlineinterMapindent serializeReg serializeCaseserializeDefault serializeBC serializedumpBCinlineinlevalD $fBinaryTT$fBinaryNameType$fBinaryUniverse$fBinaryBinder$fBinaryImplicitInfo $fBinaryRaw $fBinaryConst$fBinarySpecialName $fBinaryText $fBinaryName $fBinaryFC $fBinaryErr'$fBinaryProvenance$fBinaryErrorReportPartIdeModeCommandGetIdrisVersion ErrPPrint ErrStringTermElabTermNoImplicitsTermShowImplicits TermNormalise MetavariablesGetOptsDocsForLoadFile MakeWithBlockAddProofClause AddClause CaseSplitTypeOf InterpretREPLCompletionsWhatDocsFullOverviewSExpabletoSExp SymbolAtom IntegerAtomBoolAtom StringAtomSexpListgetNChargetLen sexpToCommand parseMessageconvSExp ideModeEpoch EitherErrRightOKLeftErr getContext forCodegengetObjectFiles addObjectFilegetLibsaddLibgetFlagsaddFlagaddDyLibgetAutoImports addAutoImportaddHdr addImported addLangExtaddTrans addErrRevaddErasureUsage addExport addUsedNamegetErasureUsage getExportstotcheckdefer_totcheckclear_totchecksetFlags setFnInfosetAccessibility setTotality getTotalitygetCoercionsToaddToCG addTyInferredaddTyInfConstraints isTyInferredaddFunctionErrorHandlersgetFunctionErrorHandlers getAllNamesallNames addCoercion addDocStr addNameHint getNameHints addToCalledG push_estack pop_estack addInstanceaddClassaddIBCclearIBC resetNameIdx addNameIdx addNameIdx' getSymbolgetHdrs getImported setErrSpanclearErrgetSOsetSO getIState putIState updateIState withContext withContext_runIOgetNameaddInternalAppgetInternalApp clearOrigPats clearPTypescheckUndefined isUndefined setContext updateContextaddConstraints addDeferredaddDeferredTyCon addDeferred' solveDeferred getUndefined isMetavarNamegetWidthsetWidthtype1Doc isetPromptisetLoadedRegion setLogLevel setCmdLine getCmdLine getDumpDefun getDumpCaseslogLevel setErrContext errContext getOptimise setOptimise addOptimiseremoveOptimise setOptLeveluseREPLsetREPL showOrigErrsetShowOrigErr setAutoSolve setNoBanner getNoBannersetQuietgetQuiet setCodegencodegen setOutputTyoutputTy setIdeModesetTargetTriple setTargetCPUverbose setVerbose typeInType setTypeInTypecoverage setCoverage setIBCSubDir valIBCSubDir addImportDir setImportDirs allImportDirs setColouriseimpShow setImpShow setColourlogLvl cmdOptTypeiLOGnoErrors setTypeCase expandParams expandParamsDmapsnd getPriority addStatics addToUsingaddUsingConstraints addUsingImplsgetUnboundImplicitsimplicit implicit' implicitise addImplPat addImplBoundaddImplBoundInfaddImpladdImpl'aiFn stripLinearstripUnmatchablemkPApp findStaticstoEither matchClause matchClause' substMatchessubstMatchesShadow substMatchsubstMatchShadowshadow mkUniqueNames$fMonadEitherErr$fApplicativeEitherErrPrimp_namep_typep_arityp_defp_lexpp_total primitives debindAppdslifydesugarmkTTNameexpandDovarunIdiomdebind Optimisable applyOptsprelapplyDataOptRT$fOptimisableTT$fOptimisableBinder$fOptimisableBinder0$fOptimisableRaw$fOptimisableEither$fOptimisable[]$fOptimisable(,,)$fOptimisable(,) inlineDef inlineTerm desugarAs transformPatstransformPatsWithapplyTransRulesapplyTransRulesWithaproposaproposModules errReversebugaddrdelabdelabMVdelabTydelab'delabTy' pprintDelab pprintDelabTy pprintErrannName fancifyAnnotspe_apppe_def pe_clauses pe_simple PEArgTypeUnifiedD ExplicitD ExplicitS ImplicitD ImplicitS partial_evalspecType mkPE_TyDecl mkPE_TermDecl getSpecAppsDocsDocs'ModDocNamedInstanceDocClassDocDataDocFunDocFunDoc'FD pprintDocsgetDocspprintConstDocsextractUnquoteswhoCallscallsWhocodegenCJSTarget JavaScriptNodecodegenJavaScript codegenNodepshowiWarniRenderconsoleDisplayAnnotatediPrintTermWithTypeiPrintFunTypes iRenderOutput iRenderResultideModeReturnWithStatusideModeReturnAnnotated iRenderErroriPrintWithStatus iPrintResult iPrintError iputStrLnidemodePutSExpiputGoal warnTotalityprintUndefinedNamesprettyDocumentedIstrenderExternal$fMonadExceptionExceptTiucheckshowErrreport idrisCatch setAndReportifailierrortclifttctry getErrSpan warnDisambexecuterecheckCrecheckC_borrowingiderrcheckDef checkAddDefinaccessibleImpsinaccessibleArgs elabCaseBlock checkInferred inferredDiff checkDocs decorateidpbindspbtygetPBtyspsolvepvarsgetFixedInType getFlexInTypegetParamsInType paramNames getUniqueUsedgetStaticNames getStaticsmkStatic mkStaticTy IFileTypeIBCLIDRIDRpkgIndexsrcPathlsrcPathibcPathibcPathWithFallbackibcPathNoFallback findImport findInPath findPkgIndexinstalledPackagesdoesFileExist'doesDirectoryExist' caseSensitiveProvidedProvide providerTy getProvidedtrivial proofSearchperformUsageAnalysis mkFieldName findExports getExpNamescompilegenerateElabCtxte_inarge_isfn e_guardede_intypee_qq e_nomatching ElabResult resultTermresultMetavarsresultCaseDecls resultContext resultTyDeclsElabModeERHSELHSETyDeclprocessTacticDeclsbuildbuildTCgetUnmatchable initElabCtxtgoal_polymorphicelabpruneAlt pruneByType findInstances solveAuto solveAutostrivial' proofSearch' resolveTCresTC'collectDeferredcase_tacN runTacticalrunTacreflmreifyreifyAppreifyReportPartsreifyTT reifyTTAppreifyRaw reifyRawApp reifyTTNamereifyTTNameAppreifyTTNamespacereifyTTNameType reifyTTBinderreifyTTBinderApp reifyTTConstreifyTTConstApp reifyArithTy reifyNativeTy reifyIntTy reifyTTUExpreflCallreflect reflectRawclaimTTreflectTTQuotePatternreflectRawQuotePatternreflectBinderQuotePatternreflectUniversereflectTTQuotereflectRawQuotereflectNameType reflectNamereflectNameQuotePattern reflectBinderreflectBinderQuotemkListreflectConstant reflectUExp reflectEnvrawBoolrawNilrawConsrawList rawPairTyrawPair reflectCtxt reflectErr reflectFCelaboratingArgErrwithErrorReflection fromTTMaybe reflErrNamereifyReportPart reifyTyDecl envTupleTypesolveAll MultiPath GuardednessGuarded UnguardedToplevelmkPatTm genClausesgenAllupdcheckAllCovering checkPositivecalcProd calcTotality checkTotalitycheckDeclTotalitybuildSCGdelazydelazy' buildSCG'checkSizeChange mkMultiPathscheckMP allNothingcollapseNothing noPartialcollapse collapse' elabValBindelabVal elabDocTerms buildTypeelabType elabType' elabPostulate elabTransform elabClauseselabPE checkPossiblepropagateParams findUnique elabClauseelabData elabRecord elabClass elabInstance elabProviderrecinfoelabMain elabPrims elabDeclselabDecl elabDecl'IndentPropertyMonadicParsingIdrisInnerParserrunInnerParser IdrisParser runparsernoDocCommentHereclearParserWarningsreportParserWarningssimpleWhiteSpaceisEoleolsingleLineCommentmultiLineComment docComment whiteSpace stringLiteral charLiteralnaturalintegerfloat idrisStylecharstringlcharsymbolreserved reservedOp identifieriName maybeWithNSname initsEndAtmkNameopCharsoperatorLettercommentMarkersinvalidOperatorsoperatorfileNamelineNum columnNumbindList pushIndent popIndent lastIndentindented indentedBlockindentedBlock1indentedBlockSlookAheadMatches openBlock closeBlock terminatorkeepTerminator notEndApp notEndBlockindentPropHoldsgtPropgtePropeqPropltProplteProp notOpenBraces accessibilityaddAccaccData fixErrorMsgcollect$fTokenParsingStateT generateDocstabletoTablebinaryprefixbackticknofixityoperator operatorFrontfnNamefixity fixityType TacticArg StringLitTArgAltsTArgExprTArgNameTArgSynMatchSynBindSynTmallowImp disallowImpfullExpr tryFullExprexpropExprexpr' externalExprsimpleExternalExpr extensions extension internalExprcaseExpr caseOption proofExpr tacticsExpr simpleExpr bracketed bracketed' bracketedExpr modifyConstalt hsimpleExpr runTacticsdisamb noImplicitsapp implicitArg constraintArg quasiquoteunquote recordTypemkTypetypeExprlambda rewriteTermlet_ let_binding quoteGoal bindsymbolpipiOptsconstraintListconstraintList1 typeDeclList tyOptDeclListlistExprdoBlockdo_do_altidiom constantsconstantverbatimStringLiteralstatictacticstactic fullTacticrecorddataIdataOptsdata_ constructorsimpleConstructordslcheckDSLoverloadIBCFilever sourcefilesymbols ibc_importsibc_importdirs ibc_implicits ibc_fixes ibc_statics ibc_classes ibc_instancesibc_dsls ibc_datatypes ibc_optimise ibc_syntax ibc_keywordsibc_objsibc_libs ibc_cgflagsibc_dynamic_libsibc_hdrs ibc_access ibc_totalibc_totcheckfail ibc_flags ibc_fninfoibc_cgibc_defsibc_docstringsibc_moduledocsibc_transforms ibc_errRev ibc_coercions ibc_lineapps ibc_namehintsibc_metainformationibc_errorhandlersibc_function_errorhandlers ibc_metavars ibc_patdefsibc_postulatesibc_parsedSpan ibc_usage ibc_exports ibcVersioninitIBCloadIBC loadPkgIndexbencodebdecodewriteIBC writePkgIndexmkIBCibcprocesstimestampOlder pPostulates pParsedSpanpUsagepExports pImportDirspImportspImpspFixespStaticspClasses pInstancespDSLs pDatatypes pOptimisepSyntax pKeywordspObjspLibspCGFlagspDyLibspHdrspPatdefspDefspDocspMDocspAccesspFlagspFnInfopTotal pTotCheckErrpCG pCoercionspTranspErrRev pLineApps pNameHintspMetaInformationpErrorHandlerspFunctionErrorHandlers pMetavars safeToEnum$fBinaryCodegen$fBinarySSymbol $fBinaryDSL'$fBinarySyntax$fBinarySynContext$fBinaryTypeInfo$fBinaryFnInfo$fBinaryOptInfo$fBinaryClassInfo $fBinaryPArg' $fBinaryPDo'$fBinaryPTactic' $fBinaryPTerm$fBinaryPunInfo$fBinaryPData'$fBinaryPClause'$fBinarySyntaxInfo $fBinaryUsing$fBinaryProvideWhat'$fBinaryPDecl'$fBinaryPlicity$fBinaryStatic$fBinaryArgOpt$fBinaryFixDecl$fBinaryFixity $fBinaryFnOpt$fBinaryDataOpt$fBinaryIBCFile$fBinaryMetaInformation$fBinaryTotality$fBinaryPReason$fBinaryAccessibility $fBinaryDef$fBinaryCaseInfo$fBinaryCaseDefs$fBinaryCaseAlt' $fBinarySC'$fBinaryCaseType$fBinaryCGInfo$fBinarySizeChange$fBinaryNumWrapper$fBinaryCodeAttr$fBinaryListType$fBinaryInline $fBinaryBlock$fBinaryDocTerm$fBinaryOptions$fBinaryDocstring moduleHeaderimport_progdecldecl' syntaxDecl addSyntax addReplSyntax syntaxRule syntaxSymfnDeclfnDecl'fnOpts postulateusing_mutual instanceBlock classBlockclass_ instance_ docstring usingDeclList usingDeclpatterncafargExprrhsclausewExpr whereBlockcodegen_ directivepLangExttotalityprovider transform parseExpr parseConst parseTactic parseImportsfindFC fixColour parseProg loadModule loadModule' loadFromIFile loadSource' loadSourceaddHides splitOnLine replaceSplitsgetUniqnameRoot getClausegetProofClausemkWith nameMissing caseSplitAt addClauseFromaddProofClauseFrom addMissingmakeWith doProofSearch makeLemmaparseCmdhelpallHelpreplCompletionproverCompletion ModuleTreeMTreemod_pathmod_needsRecheckmod_timemod_depsgetModuleFiles buildTree searchByType searchPreddefaultScoreFunctionprover showProofproverSettingsassumptionNamesproveelabStep dumpStatelifte receiveInputplooprepl startServer processNetCmd runClientinitIdemodeSocket idemodeStartidemoderunIdeModeCommandideModeForceTermImplicits splitNameidemodeProcessmkPromptlit processInput resolveProof removeProofeditproofs insertScript showTotal showTotalN displayHelp pprintDefhelphead replSettingsidris loadInputs idrisMainrunMain execScriptgetIdrisUserDataDir getInitScript initScriptgetFilegetBC getOutput getIBCSubDir getImportDir getPkgDirgetPkg getPkgClean getPkgREPL getPkgCheck getPkgMkDoc getPkgTest getCodegengetConsoleWidth getExecScript getPkgIndex getEvalExpr getOutputTygetLanguageExt getTriplegetCPU getOptLevelgetOptimisation getColour getClientgetPortopt defaultPortbannerwarranty runArgParser pureArgParserparser parseFlags parseVersion preProcOpts parseCodegenparseConsoleWidth integerReaderbuildPkgcheckPkgreplPkgcleanPkg documentPkgtestPkg installPkg buildModstestLibrmIBCrmIdx toIBCFile installIBC installIdx installObjmkDirCmdmakelistenOnLocalhostlistenOnLocalhostAnyPortgitHashdecompressEitherbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getLibexecDir getSysconfDir $fShowCmdArgcolouriseWithSTXmkColourthrowIO mvnCommandextraLibgmpLib extraIncludePrettyprettySizedsize nestingSize $fSized[] $fSized(,)annotated-wl-pprint-0.5.3!Text.PrettyPrint.Annotated.LeijenhPutDocputDocdisplayDecorated displaySpans displayIOdisplayS renderCompact renderPretty noAnnotateannotategroupnestingcolumnnest linebreaklinetextemptyalignhangwidth fillBreakrationaldoubleintboolpipeequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><$><+><>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlistDocSpanListSEmptySCharSTextSLine SAnnotStart SAnnotStop SimpleDocGroupConGroupConTypeCConstCSucCFnCName PartitionVarsConsPatPTyPatPAny PReflectedPSucPVPConstPCon CaseBuilderCSClause directUsefindAllUsedArgsisUsedrunCaseBuildercheckSameTypes isConstTypetoPatstoPatisVarPatisConPat partitionordermatchmixtureconRule caseGroups argsToAltgetVar groupConsvarRuledepattprune stripLambdas$fTermSizeCaseAlt' $fTermSizeSC' $fShowSC'eval MkContextEvalOptRunTTAtREPL EvalStatelimitednextholeblocking finalEntrybindEnv unbindEnvusablefnCountsetBlockdeduct reinstatewknVisUsableUniversespecvevaltfst$fShowTotality $fShowDef $fQuoteValue $fEqValue $fShow(->) $fShowValue RelationsmkRelsacyclic BinderPathTermPath replaceTop rebuildTerm rebuildBinderfindHolehole updateEnvupdateSolvedPathPTpath subterm_envsubtermupdatesGuessVGuessTLetVLetTInScopeInBindAppRAppLToprefocus'same cantUnifyUResultUFailUPartOKUOKUInfoUIInjs renameBindersrenameBindersTm trimSolutions expandLetshasvboundVshighVenvPos recoverableholeInpatIn RunTacticTStateholeName match_unify'mergeSolutionsunify' dropUntilactionqueryaddLogmkPtmap solve_unified updateProv updateErrorsolveInProblemsmergeNotunifiedupdateNotunifiedupdateProblems"$fPrettyProofStateOutputAnnotation$fShowProofStateInlinesBlocksoptions renderBlocks renderBlock renderList renderInlines renderInlineLineTypeCommBlankProgulLinechkAdjhvarldefssVarmkappmkfappsAltlvar scopecheck sExpToString maybePropsconstTy encodeTerm decodeTerm encodeErr decodeErrescapepSExpatomatomC quotedChar parseSExp receiveString getHexLength $fSExpableFC$fSExpableOutputAnnotation$fSExpableNameOutput$fSExpable(,,,,)$fSExpable(,,,)$fSExpable(,,) $fSExpable(,) $fSExpable[]$fSExpableMaybe$fSExpableName $fSExpableInt$fSExpableInteger $fSExpable[]0$fSExpableBool$fSExpableSExptytotalpartial iopartialvecTypesintOpsintSCmpsintCmpsintArithintConvvecCmpsvecOps bitcastPrim vecBitcastsfixedOpsmapHalf mapDouble concatWord8 concatWord16 concatWord32 truncWord16 truncWord32 truncWord64 bitcastVecmkVecCon mkVecIndex mkVecUpdateaTyNameiCmpiBinOpiUnOpiCoercefBinbfBinbcBinbsBinsBinbsrembsdivbashrbUnbitBinbCmpcmpOpsCmpOptoIntintToIntzextsexttruncintToStrgetIntstrToInt 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_allocatep_appendBufferp_appendp_peek p_cantreducereplaceUnderscore collectAsapplyAll applyFnRules applyRule matchTerm isApropostextIndefType $fApropos[]$fAproposMaybe $fApropos(,)$fAproposDocstring$fAproposConst $fAproposTT$fAproposBinder $fAproposDef $fAproposName errorIndent renameMNs pprintTerm pprintTerm' pprintProv pprintErr'addImplicitDiffsisUNannName'annTmshowScshowqual showbasicPEDeclclassConstraint concreteClass mkNewPatshowMuchshowDocpprintFDdocDatadocClassdocFun getPArgNamesextract1extract2extractTUnquotesextractPArgUnquotesextractDoUnquotesoccursnames occursBinder namesBinderoccursSCnamesSC occursCaseAlt namesCaseAlt occursDefnamesDef findOccurs codegenC'headersdebuggccFlagsgccDbgcnamecregtoDecltoCshowCStrbcctoATypetoFTypec_irtsirts_cbitOp bitCoercesignedTydoOpflUnOpifaceCmkBodyctypecarithcdesccodegenH writeIFace hdr_guard hdr_export CompileInfocompileInfoApplyCasescompileInfoEvalCasescompileInfoNeedsBigIntinitCompileInfo codegenJS_alloptimizeConstructorscollectSplitFunctions splitFunction translateDecl jsFUNPRELUDEjsALLOCMYOLDBASE translateRegtranslateConstant translateChar translateNamejsASSIGN jsASSIGNCONSTjsCALL jsTAILCALL jsFOREIGNjsREBASE jsSTOREOLDjsADDTOP jsTOPBASE jsBASETOPjsNULLjsERRORjsSLIDEjsMKCONjsCASE jsCONSTCASE jsPROJECTjsOP jsRESERVEjsSTACK jsCALLSTACK jsSTACKBASE jsSTACKTOP jsOLDBASE jsMYOLDBASEjsRETjsLOCjsTOPjsPUSHjsPOP translateBCtoFnTypeioretermodprmod cantSolveGoalVarInfoVIviDepsviFunArgviMethodCondDepSetReasonDepsArgResultUseMap minimalUsage forwardChain buildDepMap $fShowArgexpNamestoIFace toIFaceTyVal toIFaceValtoFDesc toFDescRet toFDescBase toFDescArgs toFDescPrimdeNSirMainmkDecls showCaseTreesisCondeclArgsmkLDeclirTerm doForeignirTreeirSCirAltEliminatorStateelabCon elabCaseFunMArgTyCAEAIAfindDetscheckInjectiveArgsNsDictNsInfo FullDocstringNsItemNsNameFailableerrtoNsNamegetNs rootNsStr nsName2Str fetchInfo removeOrphans filterName filterIncludetraceNss referredNssnsDict getAccesshasDoc mayHaveDocsloadDocsextractPTermNamesextract extractPArg extractPDoextractPTactic createDocs createIndex createNsDoc genRelNsPath genTypeHeader createFunDoccreateOtherDocwrappernbspexistingNamespacescopyDependencies nsDocstring nsContentsbaseGHC.Base.parsers-0.12.1.1Text.Parser.Combinators mtl-2.2.1Control.Monad.State.Classstate GHC.Float** Data.List\\ integer-gmpGHC.Integer.TypeIntegerghc-prim GHC.TypesIntCharFloatString MergeStateMSnamemapinventedsplit addUpdate inventNamemkSupplyvarliststripNS mergeAllPatsmergePat mergeUserImplargTystidy elabNewPatfindPats replaceVar updateMeta checkProv addBracket CommandTableparserCommandsForHelpparserCommandsnoArgCmd nameArgCmd exprArgCmd metavarArgCmd optArgCmd proofArgCmdpCmdcmdnoArgsexprArggenArgnameArg fnNameArgstrArg moduleArgoptArgproofArgcmd_doccmd_consolewidth cmd_dynamic cmd_pprint cmd_compile cmd_addproofcmd_logcmd_let cmd_unlet cmd_loadto cmd_colouridChar cmd_apropospackageBasedCmd cmd_searchcmd_proofsearch cmd_refine nameString completeCmdcommands tacticArgsmetavarsmodules completeWith completeName completeExprcompleteMetaVarcompleteOptioncompleteConsoleWidth isWhitespace lookupInHelpcompleteColour completePkgcompleteTacticlatest getIModTimeStateargsAndClasses usedNamesClassesArgsDAGScore transposition equalityFlipsasymModsSidedAsymMods searchUsing reverseDag computeDagPusedVars deleteFromDagbothscoreCriterionTrueFalsesubsetsmatchTypesBulkleftrightModsargApp typeClassApptypeClassIntro typeFromDefunLazydeleteFromArgListsided displayScore modifyTypesfindNameInArgsDAGfindName deleteName tcToMaybeinArgTystypeclassUnifyisTypeClassArgflipEqualities $fMonoidScore$fMonoidAsymMods $fMonoidSided $fOrdScorePkgDescpkgnamelibdepsobjsmakefile idris_opts sourcedir idris_mainexecout idris_testsPParser defaultPkg parseDescpPkgpClause