!3      !"#$%&'()*+,-./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 { | } ~                                                            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy z { | } ~                                   !!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""######### # # # # ################### #!#"###$#%#&#'#(#)#*#+#,#-#.#/#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ !$ "$ #$ $$ %$ &$ '$ ($ )$ *$ +$ ,$ -$ .$ /$ 0$ 1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 9$ :$ ;$ <$ =$ >$ ?$ @$ A$ B$ C$ D$ E$ F$ G$ H$ I$ J$ K$ L$ M$ N$ O$ P$ Q$ R$ S$ T$ U$ V$ W$ X$ Y$ Z$ [$ \$ ]$ ^$ _$ `$ a$ b$ c$ d$ e$ f$ g$ h$ i$ j$ k$ l$ m$ n$ o$ p$ q$ r$ s$ t$ u$ v$ w$ x$ y$ z$ {$ |$ }$ ~$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ !$ "$ #$ $$ %$ &$ '$ ($ )$ *$ +$ ,$ -$ .$ /$ 0$ 1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 9$ :$ ;$ <$ =$ >$ ?$ @$ A$ B$ C$ D$ E$ F$ G$ H$ I$ J$ K$ L$ M$ N$ O$ P$ Q$ R$ S$ T$ U$ V$ W$ X$ Y$ Z$ [$ \$ ]$ ^$ _$ `$ a$ b$ c$ d$ e$ f$ g$ h$ i$ j$ k$ l$ m$ n$ o$ p$ q$ r$ s$ t$ u$ v$ w$ x$ y$ z$ {$ |$ }$ ~% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & & & & & & & ' ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) !) ") #) $) %) &) ') () )) *) +) ,) -) .) /) 0) 1) 2) 3) 4) 5) 6) 7) 8) 9) :) ;) <) =) >) ?) @) A) B) C) D) E) F) G) H) I) J) K) L) M) N) O) P) Q) R) S) T) U) V) W) X) Y) Z) [) \) ]) ^) _) `) a) b) c) d) e) f) g) h) i) j) k) l) m) n) o) p) q) r) s) t) u) v) w) x) y) z) {) |) }) ~) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) * * + + + + , , - - . / 0 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 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 3 3 3 3 4 4 4 4 4 4 4 4 4 4 !4 "4 #4 $4 %4 &4 '4 (4 )4 *5 +5 ,5 -5 .5 /5 05 15 25 35 45 55 65 75 85 95 :5 ;5 <5 =5 >5 ?5 @5 A5 B5 C5 D5 E5 F5 G5 H5 I6 J6 K6 L6 M6 N6 O6 P6 Q6 R6 S6 T6 U6 V6 W6 X7 Y7 Z7 [7 \7 ]7 ^7 _7 `7 a7 b7 c7 d7 e7 f7 g7 h7 i7 j7 k7 l7 m7 n7 o7 p7 q7 r7 s7 t7 u7 v7 w7 x7 y7 z7 {7 |7 }7 ~7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 : : : : : : : : ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > > > > > > > > > > > > > > > > > > > > > > > > !? "@ #@ $@ %@ &@ '@ (@ )@ *@ +@ ,@ -@ .@ /@ 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@ bA cA dA eA fA gA hB iB jB kB lB mB nB oB pB qB rB sB tB uB vB wB xB yB zB {B |B }B ~B B B B B B B B B B B B B B B B B B B B B B B C C C D D D D D D D D D D D D D D D D D E F F F F F F F F F G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H HHHHHHHHHH H H H H HIIIIIIIIIIIJJJJKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLLMLNLOLPLQMRMSMTMUMVNWNXNYNZN[N\N]N^N_N`NaNbNcNdNeNfNgOhPiQjQkRlSmTnUoUpUqUrUsUtUuUvUwVxWyXzX{X|X}X~XYYYYYYYYYYYYYYYYYYYZZZZ[[[\\\]]]]]]]]]]^^^^^^^^________```````````aabbbbbbbbbbbbbbccccccdeeefffffffffffffffffgggghhhhhhhiiijjjjjjjjjjjjjjj j j j j jkkkllllllllllmmmmm m!m"m#m$m%m&m'm(m)m*m+m,m-m.m/m0m1m2msnSafe3The JavaScript AST.BSD3The Idris Community.Safe13  !"#$%&'()*+,-./0123  !"#$%&'()/.0*+,12-!Support for colours within Idris.BSD3The Idris Community.Safe6(Sidris$Idris's default console colour theme4idris9Compute the ANSI colours corresponding to an Idris colourTidris3Set the colour of a string using POSIX escape codesUidris?Start a colour on a handle, to support colour output on WindowsVidrisEnd a colour region on a handle5idrisCSet the colour of a string using POSIX escape codes, with trailing '\STX'? denoting the end (required by Haskeline in the prompt string)'9:;<=>?@ABCDEFGHIJKLMNQPORSTUVWXYZ[\]^_'LMNQPORBCDEFGHIJKSWXY_[Z\^]T9:;<=>?@AUV-Utilities to aid with the REPL's HELP system.BSD3The Idris Community.SafeޠjidrisThe command takes an expressionkidrisThe command takes a namelidrisThe command takes a filemidris&The command takes a shell command namenidrisThe command takes a module nameoidris)The command takes a list of package namespidrisThe command takes a numberqidris"The command takes a namespace nameridrisThe command takes an optionsidris The command takes a metavariabletidris)The command is the colour-setting commanduidrisNo completion (yet!?)vidris do not usewidrisThe width of the consolexidris5An Idris declaration, as might be contained in a fileyidris$Zero or more of one kind of argumentzidris#Zero or one of one kind of argument{idris(One kind of argument followed by another|idris6Use these for completion, but don't show them in :helpiujklmnopqrstvwxyz{|iujklmnopqrstvwxyz{|oSafe~~6789:;<*Utilities for interacting with the System.BSD3The Idris Community.Safe_=idrisSub directory in 9 location.idris.Environment variable to get new location from. ~ ~pSafe>?jPlatform-specific dynamic linking support. Add new platforms to this file through conditional compilation.BSD3The Idris Community.SafeCVX qUtilities for Network IO.BSD3The Idris Community.None@ArUtilities for Pretty Printing.BSD3The Idris Community.Safe>?^BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~The core language of Idris, TT.BSD3The Idris Community.None 13456;<=>?Arkidris&an environment with de Bruijn indices  normalised, so that they all refer to this environmentidrisData declaration optionsidris'Set if the the data-type is coinductiveidrisTerms in the core language. The type parameter is the type of identifiers used for bindings and explicit named references; usually we use TT .idris#named references with type (P for  ParameterC, motivated by McKinna and Pollack's Pure Type Systems Formalized)idris%a resolved de Bruijn-indexed variableidris a bindingidrisfunction, function type, argidrisconstantidrisTargument projection; runtime only (-1) is a special case for 'subtract one from BI'idrisan erased termidris"special case for totality checkingidrisFor building case trees when coverage checkimg only. Marks a term as being inferred by the machine, rather than given by the programmeridristhe type of types at some levelidris.Uniqueness type universe (disjoint from TType)idrisData constructoridrisType constructoridrisUniverse constraintsidrisStrictly less thanidrisLess than or equal toidris*Universe expressions for universe checkingidris3universe variable, with source file to disambiguateidrisexplicit universe levelidrisAll 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.idrisA function bindingidris;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.idrisA binding that occurs in a let expressionidrisNLet is an intermediate product in the evaluator that's used for temporarily naming locals during reduction. It won't occur outside the evaluator.idrisrA hole in a term under construction in the elaborator. If this is not filled during elaboration, it is an error.idrisA saved TT hole that will later be converted to a top-level Idris metavariable applied to all elements of its local environment.idrisA provided value for a hole. It will later be substituted - the guess is to keep it computationally inert while working on other things if necessary.idrisUA pattern variable (these are bound around terms that make up pattern-match clauses)idrisThe type of a pattern bindingidris"type annotation for bound variableidrisvalue for bound variableidris}Contexts allow us to map names to things. A root name maps to a collection of things in different namespaces with that name.idrisxNames are hierarchies of strings, describing scope (so no danger of duplicate names, but need to be careful on lookup).idrisUser-provided nameidrisRoot, namespacesidrisMachine chosen names idrisDecorated function names!idris>Reference to IBC file symbol table (used during serialisation)&idriseIdris errors. Used as exceptions in the compiler, but reported to users if they reach the top level.<idris8Location, bad universe, old domain, new domain, suspectsNidrisNUser-specified message, proof term, goals with context (first goal is focused)Pidris8The error occurred during a top-level elaboration scriptYidrisUsed for error reflection_idris&Output annotations for pretty-printing`idrisB^ The name, classification, docs overview, and pretty-printed typeaidris%^ The name and whether it is implicitcidristype, doc overviewdidrisname, doc overviewhidrisA link to this URLiidris pprint bound vars, original termjidris*more general, isomorphic, or more specificlidrisA namespace (e.g. on an import line or in a namespace declaration). Stored starting at the root, with the hierarchy fully resolved. If a file path is present, then the namespace represents a module imported from that file.oidris0type of syntax element: backslash or braces etc.pidrisText formatting outputtidris:Output annotation for pretty-printed name - decides colourzidrisFC with equality}idris1Source location. These are typically produced by 6sidris%Locations for machine-generated termsidrisLocations with file onlyidrisFilenameidris:Line and column numbers for the start of the location spanidris8Line and column numbers for the end of the location spanidris/Give a notion of filename associated with an FCidris5Give a notion of start location associated with an FCidris3Give a notion of end location associated with an FCidrisJDetermine whether the first argument is completely contained in the secondidrisEmpty source locationidrisSource location with file onlyidrisReturn True if the argument 3 should be interpreted as the name of a interface.idrisxLook up a name in the context, given an optional namespace. The name (n) may itself have a (partial) namespace given.Rules for resolution:jif an explicit namespace is given, return the names which match it. If none match, return all names.sif the name has has explicit namespace given, return the names which match it and ignore the given namespace.otherwise, return all names.idris7Determines whether the input constant represents a typeidrisGet the docstring for a ConstidrisA term is injective iff it is a data constructor, type constructor, constant, the type Type, pi-binding, or an application of an injective term.idrisFReplace the outermost (index 0) de Bruijn variable with the given termidrisAs , 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.idrisjReplace all non-free de Bruijn references in the given term with references to the name of their binding.idris Replace references to the given /-like id with references to de Bruijn index 0.idris9Convert several names. First in the list comes out as V 0idrisReplace 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.idrisdReplace every non-free reference to the name of a binding in the given term with a de Bruijn index.idrisAs , but in addition to replacing  0#, replace references to the given  -like id.idrisAs [, but takes a list of (name, substitution) pairs instead of a single name and substitutionidris*Replaces all terms equal (in the sense of (==)%) to the old term with the new term.idris<Return number of occurrences of V 0 or bound name i the termidris=Returns true if V 0 and bound name n do not occur in the termidris'Returns all names used free in the termidris'Return the arity of a (normalised) typeidrisHDeconstruct an application; returns the function and a list of argumentsidrisxReturns a term representing the application of the first argument (a function) to every element of the second argument.idrissHard-code a heuristic maximum term size, to prevent attempts to serialize or force infinite or just gigantic termsidrisCast 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.idris Introduce a Q into the given term for each element of the given list of (name, binder) pairs.idrisLike  , 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.idris5Return a list of pairs of the names of the outermost ?-bound variables in the given term, together with their types.idris7As getRetTy but substitutes names for de Bruijn indicesidris?Check whether a term has any hole bindings in it - impure if soidrisPWeaken a term by adding i to each de Bruijn index (i.e. lift it over i bindings)idriskWeaken an environment so that all the de Bruijn indices are correct according to the latest bound variableidris8Weaken every term in the environment by the given amountidrisPretty-print a termidrisPretty-print a raw term.idris4Pretty-printer helper for the binding site of a nameidrisHIgnore source location equality (so deriving classes do not compare FCs)idrisThe id to replace idrisThe replacement term idrisThe term to replace in idris Old term idris New term idristemplate term idris8The bound names (for highlighting and de Bruijn indices)idrisThe term to be printedidrisBound names, for highlightingidrisThe term to pretty-printidris^ the bound nameidris^ whether the name is implicitR      !"$#%&G'()*+,-./0123456789:;<=>?@ABCDEFHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~R%&G'()*+,-./0123456789:;<=>?@ABCDEFHIJKLMNOPQRYZ[\]^}~z{|     !tuvwxy _`abcdefghijklmnoSTUVWX"$#pqrs,Turn literate programs into normal programs.BSD3The Idris Community.None~u Wrapper around Markdown library.BSD3The Idris Community.None3456V idrisBlock-level elements.idrisRepresentation of Idris's inline documentation. The type paramter represents the type of terms that are associated with code blocks.idris>The various kinds of code samples that can be embedded in docsidris"Render a term in the documentationidrisRun 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.idrisGConstruct a docstring from a Text that contains Markdown-formatted docsidris5Convert a docstring to be shown by the pretty-printeridrissConstruct a docstring consisting of the first block-level element of the argument docstring, for use in summaries.idrisThe empty docstringidris"Check whether a docstring is emtpyidris$Empty documentation for a definitionidris%Does a string occur in the docstring?idris(Annotate the code samples in a docstringidrisHow to annotate code samples&& Check universe constraints.BSD3The Idris Community.None<>?idris;Check that a list of universe constraints can be satisfied.idrisvariables in a constraint .Module to define and interact with case trees.BSD3The Idris Community.None36;<=7idrisreflection functionidrisinvariant: lowest tags firstidris<special case for projections/thunk-forcing before inspectionidris error messageidris already checked to be impossibleidrisReturn all called functions, and which arguments are used in each argument position for the call, in order to help reduce compilation time, and trace all unused argumentsidris?Convert single branches to projections (only useful at runtime)"" Evaluate Idris expressions.BSD3The Idris Community.None6;=>?Ɨ idrisContexts used for global definitions and for proof state. They contain universe constraints and existing definitions. Also store maximum RigCount of the name (can't bind a name at multiplicity 1 in a RigW, for example)idrisNo meta-informationidrisCMeta information for a data declaration with position of parametersidris'Reasons why a function may not be totalidrisThe result of totality checkingidriswell-founded argumentsidris productive/idris5A 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 6idrisA HOAS representation of valuesidriswhether to expand lets or notDidrisONormalise fully type checked terms (so, assume all names/let bindings resolved)Eidris9Normalise everything, whether abstract, private or publicFidrisCAs normaliseAll, but with an explicit list of names *not* to reduceLidrisYLike normalise, but we only reduce functions that are marked as okay to inline, and letsMidriseLike simplify, but we only reduce functions that are marked as okay to inline, and don't reduce letsNidris+Simplify for run-time (i.e. basic inlining)OidrisSUnfold the given names in a term, the given number of times in a stack. Preserves 'let'V. This is primarily to support inlining of the given names, and can also help with partial evaluation by allowing a rescursive definition to be unfolded once only. Specifically used to unfold definitions using interfaces before going to the totality checker (otherwise mutually recursive definitions in implementations will not work...)idrisEvaluate in a context of locally named things (i.e. not de Bruijn indexed, such as we might have during construction of a proof)SidrisThe initial empty contextUidris"Get the definitions from a contextcidrisSGet the list of pairs of fully-qualified names and their types that match some namedidrisnGet the pair of a fully-qualified name and its type, if there is a unique one matching the name used as a key.eidris"Get the types that match some namefidris4Get the single type that matches some name preciselygidris}Return true if the given type is a concrete type familyor primitive False it it's a function to compute a type or a variablejidris=Check whether a resolved name is certainly a data constructorkidris=Check whether any overloading of a name is a data constructoridris;Create a unique name given context and other existing names|      !"%#$&'()*+,-./2013456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|GHDEFIJNLMKORQ/2013&'()*+,-.!"%#$    SU VWXYZ[\]^_`abcdefpqstruvT~wx{yzmgjkihln6789:;<=>?@AB45C oP|} "Reduction to Weak Head Normal FormBSD3The Idris Community.None<սidrisA WHNF is a top level term evaluated in the empty environment. It is always headed by either an irreducible expression, i.e. a constructor, a lambda, a constant, or a postulateEvery  or  in this structure is associated with the environment it was encountered in, so that when we quote back to a term we get the substitutions right.idrisdata constructoridristype constructoridris%irreducible global (e.g. a postulate)idrisbA stack entry consists of a term and the environment it is to be evaluated in (i.e. it's a thunk)idris'Reduce a term to weak head normal form.idris0Reduce a type so that all arguments are expanded Idris' unification code.BSD3The Idris Community.None<5idrisPSmart constructor for unification errors that takes into account the FailContext  Idris' type checker.BSD3The Idris Community.None3;<=>?ٯ)Proof term. implementation and utilities.BSD3The Idris Community.None;=>?; idrisFA zipper over binders, because terms and binders are mutually defined.idris@A zipper over terms, in order to efficiently update proof terms.idriskReplace the top of a term path with another term path. In other words, "graft" one term path into another.idris?Build a term from a zipper, given something to put in the hole.idrisABuild a binder from a zipper, given something to put in the hole.idrisFind 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.idrisjRefocus the proof term zipper on a particular hole, if it exists. If not, return the original proof term.idris)Is a particular binder a hole or a guess?idris>Given a list of solved holes, fill out the solutions in a termidrisGiven 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.idrisAs W, in TT, but takes advantage of knowing not to substitute under Complete applications.idris"Apply solutions to an environment.idris'Fill out solved holes in a term zipper.idrisThe id to replace idrisThe replacement term idrisThe term to replace in NFData instances for TT.BSD3The Idris Community.None%;=WidrisQForcing the contents of a context, for diagnosing and working around space leaks'Binary instances for the core datatypesBSD3The Idris Community.None;=Idris' IDE ModeBSD3The Idris Community.None;=idris&^ Recursive?, line, name, hints, depth#idris1^ the Int is the column count for pretty-printingCidrisaThe version of the IDE mode command set. Increment this when you change it so clients can adapt.2 $!"#%&'()*+,-./1023456789:;<=>?@ABC2AB/10 $!"#%&'()*+,-.@6789:;<5234C>=?-Internal representation of Idris' constructs.BSD3The Idris Community.None136<VWXYZ[\^]_`cbadmlkjihgfenqpor~}|{zyxwvutsr~}|{zyxwvutsnqpodmlkjihgfe`cba_\^][XYZVW"Provision of primitive data types.BSD3The Idris Community.NoneQV      &Transformations to apply to Idris' IR.BSD3The Idris Community.None3IidrisInline inside a declaration.Variables are still Name at this stage. Need to preserve uniqueness of variable names in the resulting definition, so invent a new name for every variable we encounterThe JavaScript specializer.BSD3The Idris Community.None_$The JavaScript primitive operations.BSD3The Idris Community.None0 !" !"The JavaScript name mangler.BSD3The Idris Community.None  %&'()*+,-. )*'(+,%&-.%The JavaScript LDecl Transformations.BSD3The Idris Community.None01 3434Defunctionalise Idris' IR.BSD3The Idris Community.None< didrisADivide up a large case expression so that each has a maximum of  branchesVWXZY[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef+<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefVSimplified expressions, where functions/constructors can only be applied to variables.BSD3The Idris Community.None<idrisSimplify an expression by let-binding argument expressions that are not variables The boolean parameter indicates whether the expression is at tail call position.idrisLet-bind a list of expressions to variables and construct the inner expression with the bound variables. If an expression in the list is already a variable we don t bind it again.idrisSpecial case of  for just one expressionmnopqrs{tuvwxyz|}~mns{tuvwxyz|}~opqrInline expressions.BSD3The Idris Community.None8Common data structures required for all code generators.BSD3The Idris Community.None6idris5Everything which might be needed in a code generator.A CG can choose which level of Decls to generate code from (simplified, defunctionalised or merely lambda lifted) and has access to the list of object files, libraries, etc.Compiler options for Idris.BSD3The Idris Community.None136.Y idris5Recognised logging categories for the Idris compiler.@TODO add in sub categories.idris&partial eval and associated transformsidrisHow wide is the console?idris:Have pretty-printer assume that lines should not be brokenidris%Manually specified - must be positiveidris+Attempt to determine width, or 80 otherwiseidris REPL TCP portidris#Automatically adjust terminal widthidrisBAutomatically issue "solve" tactic in old-style interactive proveridris5Don't show deprecation warnings for old-style tacticsidris)Allow pattern variables to be capitalized%idrissReturns None if given an Opt which is not PkgMkDoc Otherwise returns Just x, where x is the contents of PkgMkDoc%idrisOpt to extractidrisResult&idristhe option to extractidristhe package file to test      !"#$%&'()*+,-./01234     2'(1),*./0-!$" +%#&34[Bytecode for a stack based VM (e.g. for generating C code with an accurate hand written GC)BSD3The Idris Community.NoneOQidris reg1 = reg2Ridris reg = constSidris&reg1 = reg2 (same as assign, it seems)Tidrisreg = constructor, where constructor consists of a tag and values from registers, e.g. (cons tag args) the 'Maybe Reg', if set, is a register which can be overwritten (i.e. safe for mutable update), though this can be ignoredUidrisRMatching on value of reg: usually (but not always) there are constructors, hence Int for patterns (that's a tag on which we should match), and the following [BC] is just a list of instructions for the corresponding case. The last argument is for default case. When it's not necessary a constructor in the reg, the Bool should be False, indicating that it's not safe to work with that as with a constructor, so a check should be added. If it's not a constructor, default case should be used.Vidrisget a value from register, which should be a constructor, and put its arguments into the stack, starting from (base + int1) and onwards; second Int provides arityWidrisprobably not usedXidrisAsame as CASE, but there's an exact value (not constructor) in regYidris9just call a function, passing MYOLDBASE (see below) to itZidris!same, perhaps exists just for TCO[idrisset reg to (apply string args),\idris-move this number of elements from TOP to BASE]idrisset BASE = OLDBASE^idrisIreserve n more stack items (i.e. check there's space, grow if necessary)_idrismove the top of stack up`idrisset TOP = BASE + naidrisset BASE = TOP + nbidrisset MYOLDBASE = BASE, where MYOLDBASE is a function-local variable, set to OLDBASE by default, and passed on function call to called functions as their OLDBASEcidris#reg = apply primitive_function argsdidris clear regeidristhrow an error&Pedba`_^]\[ZYXWVUTSRQcfjgihklmnopqrstu&fjgihPedba`_^]\[ZYXWVUTSRQcklmnopqrstu Serialise Idris' IR to JSON.BSD3The Idris Community.None;=Ryy!"Serialise Idris to its IBC format.BSD3The Idris Community.NoneSG"Proof state implementation.BSD3The Idris Community.None;<=>?b idrisholes still to be solvedidrisused names, don't use againidris%name supply, for locally unique namesidris\a mirror of the global name supply, for generating things like type tags in reflectionidriscurrent proof termidris original goalidris(explicitly given by programmer, leave itidrisUdot pattern holes + environment either hole or something in env must turn up in the  list during elaborationidrisnames we'll need to defineidris)implementation arguments (for interfaces)idris unsolved auto implicits with their holesidris'Local names okay to use in proof searchidrisfor undoidris#the name of what's to be elaboratedidriscurrent source fileidristhe current global contextidris0the value of the idris_datatypes field of IStateidris+the value of the idris_name field of IStateidris the goal typeXX#vA high level language of tactic composition, for building elaborators from a high level language into the core theory.BSD3The Idris Community.None;=>?\idriszTransform the error returned by an elaboration script, preserving location information and proof search failure messages.idrisModify the auxiliary stateidrisGet the auxiliary stateidris#Set whether to show the unifier logidris4Process a tactic within the current elaborator state idrisGet the global context!idrisrUpdate the context. (should only be used for adding temporary definitions or all sorts of stuff could go wrong)&idrisget the proof term'idrismodify the proof term(idris4get the local context at the currently in focus hole-idris\Return recently solved names (that is, the names solved since the last call to get_recents).idrisget the current goal type0idris2Get the guess at the current hole, if there is one1idrisTypecheck locally3idris-get holes we've deferred for later definition5idris!get implementation argument names6idrisget auto argument names7idris4given a desired hole name, return a unique hole nameXidrisTurn the current hole into a pattern variable with the provided name, made unique if not the same as the head of the hole queueYidrisaTurn the current hole into a pattern variable with the provided name, but don't make MNs unique._idrisSet the zipper in the proof state to point at the current sub term (This currently happens automatically, so this will have no effect...)kidrisKPrepare to apply a function by creating holes to be filled by the argumentslidrisEApply an operator, solving some arguments by unification or matching.midrisEApply an operator, solving some arguments by unification or matching.idris#the name of what's to be elaboratedidristhe current source fileidristhe current global contextidris0the value of the idris_datatypes field of IStateidris+the value of the idris_name field of IStateidris the goal typekidrisThe operation being appliedidrisWhether arguments are implicitidrisWThe names of the arguments and their holes to be filled with elaborated argument valueslidrisThe operator to applyidrisVFor each argument, whether to attempt to solve it and the priority in which to do somidrisThe operator to applyidrisVFor each argument, whether to attempt to solve it and the priority in which to do so      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$$Core data definitions used in Idris.BSD3The Idris Community.None 13456;<=>?Z idrisYinterface methods. When expanding implicits, these should be expanded even under bindersidrisSyntactic sugar infoidris)Miscellaneous information about functionsidris(a function with a partially defined typeidris.possible solutions to a metavariable in a typeidris!flag whether it's a "data" methodidrismethod name -> default implidris^the Bool is whether to include in implementation search, so named implementations are excludedidristrue if the machine inferred itidris"second FC is precise name locationidris"second FC is precise name locationidris)the bool is whether to search recursivelyidris"flag sets whether delay is allowedidrisHigh level language termsidris6Inclusion of a core term into the high-level languageidrisA reference to a variable. The FC is its precise source location for highlighting. The list of FCs is a collection of additional highlighting locations.idrisA name to be defined lateridrisA pattern variableidris-A lambda abstraction. Second FC is name span.idrisH(n : t1) -> t2, where the FC is for the precise location of the variableidris2A let binding (second FC is precise name location)idrisTerm with explicit typeidrise.g. IO (), List Char, length xidrisApplication plus a with argumentidrisBImplicit argument application (introduced during elaboration only)idrisimplicitly bound application idris$Make an application by type matching!idrisDConditional expressions - elaborated to an overloading of ifThenElse"idrisWA case expression. Args are source location, scrutinee, and a list of pattern/RHS pairs#idris Unit type..?$idris-Solve this dictionary by interface resolution%idrisL"rewrite" syntax, with optional rewriting function and optional result type&idrisvA pair (a, b) and whether it's a product type or a pair (solved by elaboration). The list of FCs is its punctuation.'idrisA dependent pair (tm : a ** b) and whether it's a sigma type or a pair that inhabits one (solved by elaboration). The [FC] is its punctuation.(idris@-pattern, valid LHS only)idrisH(| A, B, C|). Includes unapplied unique name mappings for mkUniqueNames.*idrisIrrelevant or hidden pattern+idris type,idris Some universe-idris)quoteGoal, used for %reflection functions.idris Builtin types/idris Underscore0idris Do notation1idrisIdiom brackets2idris/A metavariable, ?name, and its precise location3idris Proof script4idrisAs PProof, but no auto solving5idrisError to report on elaboration6idris6Special case for declaring when an LHS can't typecheck7idris5To mark a coerced argument, so as not to coerce twice8idris#Preferences for explicit namespaces9idris/dump a trace of unifications when building term:idris)never run implicit converions on the term;idris`(Term [: Term])<idris~Term=idris`{n} where the FC is the precise highlighting for the name in particular. If the Bool is False, then it's `{{n}} and the name won't be resolved.>idrisV%runElab tm - New-style proof script. Args are location, script, enclosing namespace.?idriscA desugared constant. The FC is a precise source location that will be used to highlight it later.GidrisData declarationHidrisData declarationIidris Placeholder. for data whose constructors are defined laterJidrisThe name of the datatypeKidris1The precise location of the type constructor nameLidrisType constructorMidris ConstructorsNidrisIOne 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)OidrisA normal top-level definition.TidrisFor elaborator stateZidrisnames bound as auto implicits[idris6Implicit warnings to report (location and global name)\idrisA set of instructions for things that need to happen in IState after a term elaboration when there's been reflected elaboration.aidrisDatatype, constructorsbidrisThe set of source directiveswidris[Top-level declarations such as compiler directives, definitions, datatypes and interfaces.xidrisFixity declarationyidris3Type declaration (last FC is precise name location)zidris-Postulate, second FC is precise name location{idrisPattern clause|idrisTop level constant}idrisData declaration.~idris Params blockidrisOpen block/declarationidrisJNew namespace, where FC is accurate location of the namespace in the fileidris Record name.idrisInterface: arguments are documentation, syntax info, source location, constraints, interface name, interface name location, parameters, method declarations, optional constructor nameidrisImplementation declaration: arguments are documentation, syntax info, source location, constraints, interface name, parameters, full Implementation type, optional explicit name, and definitionsidrisDSL declarationidrisSyntax definitionidris Mutual blockidrisCompiler directive.idrispType provider. The first t is the type, the second is the term. The second FC is precise highlighting location.idrisXSource-to-source transformation rule. If bool is True, lhs and rhs must be convertible.idrisBFC is decl-level, for errors, and Strings represent the namespaceidrisType provider - what to provideidris2the first is the goal type, the second is the termidris$goal type must be Type, so only termidris always evaluate when simplifyingidris8all delayed arguments guaranteed guarded by constructorsidrisZinterface dictionary, eval only when a function argument, and further evaluation results.idris&Interface dictionary which may overlapidrisimplicit coercionidrisdo not apply implicit coercionsidrisexport, with a C nameidris;an error handler for use with the ErrorReflection extensionidris4attempt to reverse normalise before showing in erroridris)unfold definition before showing an erroridris(a reflecting function, compile-time onlyidris!specialise it, freeze these namesidrisData constructor typeidrisuse in auto implicit searchidrisgenerated by partial evaluatoridris3Marked static, to be evaluated by partial evaluatoridris#this is a param (rather than index)idrisNothing, if top levelidrisExplicitly written in sourceidris3Mark bindings with their explicitness, and lazinessidrisqThe monad for the main REPL - reading and processing files and updating global state (hence the IO inner monad). C type Idris = WriterT [Either String (IO ())] (State IState a)) idrisTrue = import publicidrisThe main context.idris6The name is the special name used to track module docs idris(The global state used in the Idris monad idris/All the currently defined names and their terms idrisGA list of universe constraints and their corresponding source locations idris!Currently defined infix operators idris4Privileged implementations, will resolve immediately idrisHlist of lhs/rhs, and a list of missing clauses. These are not exported. idrisname, args used in each pos idrisgmodule documentation is saved in a special MN so the context mechanism can be used for disambiguation. idrisnames to check totality on idrisnames to check at the end !idris#Full application LHS on source line "idrisThe currently defined but not proven metavariables. The Int is the number of vars to display as a context, the Maybe Name is its top-level function, the [Name] is the list of local variables available for proof search and the Bools are whether :p is allowed, and whether the variable is definable at all (Metavariables are not definable if they are applied in a term which still has hole bindings) (idrisThe imported modules .idris'Imported ibc file names, whether public @idrisGlobal error handlers BidrisSpecific error handlers Didris#How many chars wide is the console? Gidris4Function/constructor name, argument position is used HidrisFList of names that were defined in the repl, and can be re-/un-defined IidrisStack of names currently being elaborated, Bool set if it's an implementation (implementations appear twice; also as a function name) Jidris)Symbol table (preserves sharing of names) KidrisFunctions with ExportList Lidris"Highlighting information to output Midris(Highlighting information from the parser Nidris Deprecated names and explanation OidrisNames defined in current module QidrisFragile names and explanation. Sidris.Configuration options for interactive editing. Widris<If a function has no totality annotation, what do we assume? XidrisTotal YidrisPartial ZidrisTotal coverage, but may diverge [idrisThe output mode in use \idris(Print user output directly to the handle ]idris1Send IDE output for some request ID to the handle `idriswhether to show implicits bidris$whether to show names in pi bindings didris,whether to display multiplicities in binders hidrisList of logging categories. lidrisshow implicits yidrisremember whole command line {idris,automatically apply "solve" tactic in prover |idris$List of modules to auto import i.e. `Builtins+Prelude` idrisnormalise types in `:t` idrishData to pass to recursively called elaborators; e.g. for where blocks, paramaterised declarations, etc.rec_elabDecl is used to pass the top level elaborator into other elaborators, so that we can have mutually recursive elaborators in separate modules without having to muck about with cyclic modules. idris$names in the block, and their params idris+filename for adding to constraint variables idristypes which shouldn't be made arguments to case | We may, recursively, collect transformations to do on the rhs, e.g. rewriting recursive calls to functions defined by with idris/Pretty printing options with default verbosity. idris0Pretty printing options with the most verbosity. idris8Get pretty printing options from the big options record. idris7Get pretty printing options from an idris state record. idris"The initial state for the compiler idrisTransform the FCs in a PData and its associated terms. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially. idrisTransform the FCs in a PTerm. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially. idris+Get all the names declared in a declaration idrisTransform the FCs in a PTerm. The first function transforms the general-purpose FCs, and the second transforms those that are used for semantic source highlighting, so they can be treated specially. idris+Get the highest FC in a term, if one exists idrisThe 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. idrisColourise 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. idris7Colourise annotations according to an Idris state. It ignores the names in the annotation, as there's no good way to show extended information on a terminal. Note that strings produced this way will not be coloured on Windows, so the use of the colour rendering functions in Idris.Output is to be preferred. idris_Pretty-print a high-level closed Idris term with no information about precedence/associativity idris>Serialise something to base64 using its Binary implementation.4Do the right thing for rendering a term in an IState idrisOPretty-print a high-level Idris term in some bindings context with infix info. idris Strip away namespace information idrisUDetermine whether a name was the one inserted for a hole or guess by the delaborator idrisQCheck whether a PTerm has been delaborated from a Term containing a Hole or Guess idrisEPretty-printer helper for names that attaches the correct annotations idrisShow Idris name idris&Show a term with implicits, no colours idris!Show a term with specific options idrispretty printing optionsidristhe term to pretty-print idrispretty printing optionsidris7the currently-bound names and whether they are implicitidris,names to always show in pi, even if not usedidrisFixity declarationsidristhe term to pretty-print idrisCwhether the name should be parenthesised if it is an infix operatoridriswhether to show namespacesidris9the current bound variables and whether they are implicitidristhe name to pprint idris8the Idris state, for information about names and coloursidris0the bound variables and whether they're implicitidrispretty printing optionsidriswhether to colouriseidristhe term to show idris>the Idris state, for information about identifiers and coloursidristhe term to show|     ?>=<;:9876543210/.-,+*)('&%$#"! @CBADEFGIHLKJMNRQPOSTU[ZYXWV\a`_^]bvutsrqponmlkjihgfedcw~}|{zyx       R Q P O N M L K J I H G F E D C B A @ ? > < ; : 9 8 7 6 5 4 3 2 1 0 / . - , + * ) ( ' & % $ # " !                 =     S T V U W Z Y X [ \ ] ^ _ d c b a ` e f  ~ } | { z y x w v u t s r q p o n m l k j i h g | e f  ~ } | { z y x w v u t s r q p o n m l k j i h g ^ _ d c b a ` [ \ ] W Z Y X S T V U   R Q P O N M L K J I H G F E D C B A @ ? > < ; : 9 8 7 6 5 4 3 2 1 0 / . - , + * ) ( ' & % $ # " !                 =             w~}|{zyxbvutsrqponmlkjihgfedc\a`_^]TU[ZYXWV S NRQPOGIHLKJM FED @CBA?>=<;:9876543210/.-,+*)('&%$#"!            %!NFData instances for Idris' typesBSD3The Idris Community.Noneo&This implements just a few basic lens-like concepts to ease state updates. Similar to fclabels in approach, just without the extra dependency.BSD3The Idris Community.None>?z} idrisJExact-name context lookup; uses Nothing for deleted values (read+write!).`Reading a non-existing value yields Nothing, writing Nothing deletes the value (if it existed). idris2the optimisation record for the given (exact) name idris%two fields of the optimisation record idris+callgraph record for the given (exact) name idrisCommandline flags idris TT ContextcThis has a terrible name, but I'm not sure of a better one that isn't confusingly close to tt_ctxt idrisNames defined at the repl idris Fixity declarations in an IState  '#Utilities for getting screen width.BSD3The Idris Community.Safe|#  (*Utilities for interacting with the system.BSD3The Idris Community.Safe) idris@Create a temp file with the extensiom ext (in the format ".xxx") idrisIRead a source file, same as readFile but make sure the encoding is utf-8. idrisRead a source file, make sure that the it all has been read before exiting the function. | This is useful when we want to write the file again and need it to be closed. idrisJWrite a source file, same as writeFile except the encoding is set to utf-8 idris#Write a utf-8 source file from TextidrisReturn m if the process's standard output is attached to a MinTTY console (e.g., Cygwin or MSYS) on Windows. Return  otherwise.3Unfortunately, we must check this separately since   always returns  on MinTTY consoles. )7Provides Idris' core data definitions and utility code.BSD3The Idris Community.None3< idrisTransforms are organised by the function being applied on the lhs of the transform, to make looking up appropriate transforms quicker idristAdd transformation rules from a definition, which will reverse the definition for an error to make it more readable idriscSay that the name should always be reduced in error messages, to help readability/error reflection idris3get the accessibility of a name outside this module idriswAdds error handlers for a particular function and argument. If names are ambiguous, all matching handlers are updated. idris>Trace all the names in a call graph starting at the given name idris)Add an interface implementation function.>Precondition: the implementation should have the correct type.]Dodgy hack 1: Put integer implementations first in the list so they are resolved by default.3Dodgy hack 2: put constraint chasers (ParentN) last idris"Add a privileged implementation - one which implementation search will happily resolve immediately if it is type correct This is used for naming parent implementations when defining an implementation with constraints. Returns the old list, so we can revert easily at the end of a block idris!Used to preserve sharing of names -idrisPA version of liftIO that puts errors into the exception type of the Idris monad /idrisInternalApp keeps track of the real function application for making case splits from, not the application the programmer wrote, which doesn't have the whole context in any case other than top level definitions 1idrisWPattern definitions are only used for coverage checking, so erase them when we're done 2idrisErase types from Ps in the context (basically ending up with what's in the .ibc, which is all we need after all the analysis is done) :idris5Save information about a name that is not yet defined Didris+Tell clients how much was parsed and loaded UidrisSet appropriate optimisation set for the given level. We only have one optimisation that is configurable at the moment, however! idrisLog an action of the parser idris Log an action of the elaborator. idrisLog an action of the compiler. idrisLog aspect of Idris execution@An empty set of logging levels is used to denote all categories.@TODO update IDE protocol idrisCalculate a priority for a type, for deciding elaboration order * if it's just a type variable or concrete type, do it early (0) * if there's only type variables and injective constructors, do it next (1) * if there's a function type, next (2) * finally, everything else (3) idrisBAdd implicit bindings from using block, and bind any missing names idris^Even if auto_implicits is off, we need to call this so we record which arguments are implicit idris(Add implicit arguments in function calls idrisAdd the implicit arguments to applications in the term [Name] gives the names to always expend, even when under a binder of that name (this is to expand methods with implicit arguments in dependent interfaces). idriszreturn True if the second argument is an implicit argument which is expected in the implicits, or if it's not an implicit idrisRemove functions which aren't applied to anything, which must then be resolved by unification. Assume names resolved and alternatives filled in (so no ambiguity). idrisFind static argument positions (the declared ones, plus any names in argument position in the declared statics) FIXME: It's possible that this really has to happen after elaboration idrisSyntactic match of a against b, returning pair of variables in a and what they match. Returns the pair that failed if not a match. idrisjRename any binders which are repeated (so that we don't have to mess about with shadowing anywhere else). idris-whether the name is an Integer implementationidris>whether to include the implementation in implementation searchidristhe name of the interfaceidristhe name of the implementation :idrisThe Name is the name being made into a metavar, the Int is the number of vars that are part of a putative proof context, the Maybe Name is the top-level function containing the new metavariable, the Type is its type, and the Bool is whether :p is allowed idris4The categories that the message should appear under.idris,The Logging level the message should appear.idris"The message to show the developer. idris)Allow capitalization of pattern variablesidrisfunction being applied idris#initial arguments (if in a pattern)X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIMJKLNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~           =                 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] \ ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  *"Find function callers and callees.BSD3The Idris Community.None  + A collection of transformations.BSD3The Idris Community.None idrisQWork on explicitly named terms, so we don't have to manipulate de Bruijn indices idrisQWork on explicitly named terms, so we don't have to manipulate de Bruijn indices  ,Browse the current namespace.BSD3The Idris Community.None idrisFind the sub-namespaces of a given namespace. The components should be in display order rather than the order that they are in inside of NS constructors. idrisFind the user-accessible names that occur directly within a given namespace. The components should be in display order rather than the order that they are in inside of NS constructors.  -Idris' Inliner.BSD3The Idris Community.None idrisKInlining is either top level (i.e. not in a function arg) or argument levelFor each application in a term: * Check if the function is inlinable (Dictionaries are inlinable in an argument, not otherwise) - If so, try inlining without reducing its arguments + If successful, then continue on the result (top level) + If not, reduce the arguments (argument level) and try again - If not, inline all the arguments (top level)  .6Utility to make errors readable using transformations.BSD3The Idris Community.None idrisFor display purposes, apply any 'error reversal' transformations so that errors will be more readable, and any 'error reduce' transformations  /"Code to elaborate quasiquotations.BSD3The Idris Community.None  0$Code to elaborate pattern variables.BSD3The Idris Community.None idris9Desugar by changing x@y on lhs to let x = y in ... or rhsidrisQReplace _-patterns under @-patterns with fresh names that can be used on the RHS  1LConvert core TT back into high level syntax, primarily for display purposes.BSD3The Idris Community.None idris Re-add syntactic sugar in a term idrisDelaborate and resugar a term idris$Delaborate a term without resugaring idrisDelaborate a term directly, leaving case applications as they are. We need this for interactive case splitting, where we need access to the underlying function in a delaborated form, to generate the right patternsidrisHow far to indent sub-errorsidrisaActually indent a sub-error - no line at end because a newline can end multiple layers of indent idris+Pretty-print a core term using delaboration idris"Pretty-print the type of some nameidrisMake sure the machine invented names are shown helpfully to the user, so that any names which differ internally also differ visibly idrisMAdd extra metadata to an output annotation, optionally marking metavariables. idris"implicit arguments to type, if anyidrisFNames and types in environment (for properly hiding scoped implicits)idrisuse full namesidris#Don't treat metavariables speciallyidris resugar cases  2{Code related to Idris's reflection system. This module contains quoters and unquoters along with some supporting datatypes.BSD3The Idris Community.None, idrisPrefix a name with the Language.Reflection namespace idrisPrefix a name with the Language.Reflection.Elab namespace idris1Reify tactics from their reflected representation idris/Reify terms from their reflected representation idris3Reify raw terms from their reflected representationidris7Create a reflected call to a named function/constructor idris:Lift a term into its Language.Reflection.TT representation idris;Lift a term into its Language.Reflection.Raw representation idrisConvert 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. idrisFCreate a reflected TT term, but leave refs to the provided name intactidrisElaborate 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 _. idrisBReflect the environment of a proof into a List (TTName, Binder TT)idris<Reflect an error into the internal datatype of Idris -- TODOidrisIdris tuples nest to the right idrisReflect a file context idrisAttempt to reify a report part from TT to the internal representation. Not in Idris or ElabD monads because it should be usable from either. idrissApply Idris's implicit info to get a signature. The [PArg] should come from a lookup in idris_implicits on IState. idris\Build the reflected function definition(s) that correspond(s) to a provided unqualifed name idris]Build the reflected datatype definition(s) that correspond(s) to a provided unqualified name9         9         3$Searches current context for proofs'BSD3The Idris Community.None; idris+Resolve interfaces. This will only pick up normalF implementations, never named implementations (which is enforced by ).idrisFind the names of implementations that have been designeated for searching (i.e. non-named implementations or implementations from Elab scripts) idrisrecursive search (False for refine)idris{invoked from a tactic proof. If so, making new metavariables is meaningless, and there should be an error reported instead.idris ambiguity okidrisdefer on failureidris maximum depth idrisusing default Intidrisallow open implementationsidrisdepthidris"top level goal, for error messagesidris)top level function name, to prevent loopsidristop level elaborator        4&Implementation of a partial evaluator.BSD3The Idris Community.None<^idrisA partially evaluated function. pe_app captures the lhs of the new definition, pe_def captures the rhs, and pe_clauses is the specialised implementation.ype_simple is set if the result is always reducible, because in such a case we'll also need to reduce the static argument idrisSData type representing binding-time annotations for partial evaluation of arguments idrisImplicit static argument idrisImplicit dynamic argument idrisImplementation constraint idrisImplementation constraint idrisExplicit static argument !idrisExplicit dynamic argument "idris3Erasable dynamic argument (found under unification) #idrisPartially 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. $idrisSpecialises the type of a partially evaluated TT function returning a pair of the specialised type and the types of expected arguments. %idrisCreates an Idris type declaration given current state and a specialised TT function application type. Can be used in combination with the output of  $.tThis should: specialise any static argument position, then generalise over any function applications in the result.idris>Checks if a given argument is an interface constraint argumentidrisChecks if the given arguments of an interface constraint are all either constants or references (i.e. that it doesn't contain any complex terms). &idrisCreates 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 'idris1Get specialised applications for a given functionidrisdefinition to specialiseidrisarguments to specialise withidrisNew nameidrisSpecialised function nameidris Default lhsidris Default rhs &idrisType of specialised function          ! " # $ % & ' # ' $ % &      ! "    5IUtilities to display Idris' internals and other informtation to the user.BSD3The Idris Community.None;=hmidrisAWrite a pretty-printed term to the console with semantic coloring 5idrisUPretty-print a collection of overloadings to REPL or IDEMode - corresponds to :t nameidris@Write pretty-printed output to IDEMode with semantic annotations 8idris(Show an error with semantic highlighting ?idris7Warn about totality problems without failing to compile DidriszWrite the highlighting information to a file, for use in external tools or in editors that don't support the IDE protocol * , + - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F E 2 0 = : 5 9 4 > < ; 3 8 6 7 1 A @ / F C B ? D . * , + -6&Idris parser stack and its primitives.BSD3The Idris Community.None+<>?z Kidris&A constraint for parsing without state Lidris$Our parser stack with state of type s MidrisRun the Idris parser stack Nidris7A fully formatted parse error, with caret and bar, etc. OidrisBRetrieve the parser state so we can restart from this point later. QidrisGet the current parse position.jThis is useful when the position is needed in a way unrelated to the heirarchy of parsers. Prefer using  withExtent and friends. Ridris2Add an extent (widen) our current parsing context. Sidris"Run a parser and track its extent.Wrap bare Megaparsec parsers with this to make them "visible" in error messages. Do not wrap whitespace or comment parsers. If you find an extent is taking trailing whitespace, it's likely there's a double-wrapped parser (usually via Idris.Parser.Helpers.token). Tidris7Run a parser, discard its value, and return its extent. Uidris-Run a parser and return its value and extent. VidrisBRun a parser and inject the extent after via function application. I J K L M N O P Q R S T U V L K M J N I O P Q R S T U V7Utilities for Idris' parser.BSD3The Idris Community.None+<>?A, Xidris+Idris parser with state used during parsing ]idris8Parse a reserved identfier, highlighting it as a keywordidrisKConsumes any simple whitespace (any character which satisfies Char.isSpace) aidris#Checks if a charcter is end of line bidris-A parser that succeeds at the end of the lineidrisConsumes a single-line comment  SingleLineComment_t ::= '--' ~EOL_t* EOL_t ; idrisConsumes a multi-line comment G MultiLineComment_t ::= '{ -- }' | '{ -' InCommentChars_t ; k InCommentChars_t ::= '- }' | MultiLineComment_t InCommentChars_t | ~'- }'+ InCommentChars_t ; cidrisParses a documentation comment  DocComment_t ::= |||" ~EOL_t* EOL_t ; didrisParses some white space eidrisParses a string literal fidrisParses a char literal gidrisParses a natural number hidrisParses a floating point number kidrisParses a character as a token midrisParses a reserved identifier nidrisParses an identifier as a token oidris6Parses an identifier with possible namespace as a name pidris1Parses an string possibly prefixed by a namespace qidris Parses a nameidrisList of all initial segments in ascending order of a list. Every such initial segment ends right before an element satisfying the given condition.idris Create a D from a pair of strings representing a base name and its namespace. ridrisParse a package name sidrisBind constraints to term tidriscommaSeparated p" parses one or more occurences of p4, separated by commas and optional whitespace. uidrisPush indentation to stack vidrisPops indentation from stackidrisGets current indentationidrisGets last indentation widris&Applies parser in an indented position xidrisFApplies parser to get a block (which has possibly indented statements) yidrisbApplies parser to get a block with at least one statement (which has possibly indented statements) zidrisLApplies parser to get a block with exactly one (possibly indented) statement {idris9Checks if the following character matches provided parser |idrisParses a start of block }idrisParses an end of block ~idrisParses a terminatoridrisParses and keeps a terminator idris-Checks if application expression does not end idris"Checks that it is not end of block idris3Checks that there are no braces that are not closedidris7Parses an accessibilty modifier (e.g. public, private) idris&Adds accessibility option for function idrisKAdd accessbility option for data declarations (works for interfaces too - abstract6 means the data/interface is visible but members not) idris'Error message with possible fixes list = I J K L M N O P Q R S T U V X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  / X Y d Z b a i l j { k m c [ g f e h s p o q n r ` ^ _ \ ] u v | } ~ x y z w  t8-Parser for operators and fixity declarations.BSD3The Idris Community.None+<>?Ku idrisCreates table for fixity declarations to build expression parser using pre-build and user-defined operator/fixity declarations idris>Parses a function used as an operator -- enclosed in backticks . BacktickOperator ::= '`' Name '`' ; idrisJParses an operator name (either a symbolic name or a backtick-quoted name) G OperatorName ::= SymbolicOperator | BacktickOperator ; idrisZParses an operator in function position i.e. enclosed by `()', with an optional namespace  OperatorFront ::= '(' '=' ')' | (Identifier_t )? '(' Operator_t ')' ; idris2Parses a function (either normal name or operator) # FnName ::= Name | OperatorFront; idrisParses a fixity declaration ? Fixity ::= FixityType Natural_t OperatorList Terminator ; idris@Check that a declaration of an operator also has fixity declared idris:Checks that an operator name also has a fixity declaration idrisFParses a fixity declaration type (i.e. infix or prefix, associtavity)  FixityType ::= 'infixl' | 'infixr' | 'infix' | prefix ; idrisParses an operator idrisParses a reserved operator  9'Utilities to deal with error reporting.BSD3The Idris Community.None1e idrisGIssue a warning on "with"-terms whose namespace is empty or nonexistent :!The termination checker for IdrisBSD3The Idris Community.None idrisoCheck whether function and all descendants cover all cases (partial is okay, as long as it's due to recursion) idrisCheck whether all Inf arguments to the name end up guaranteed to be guarded by constructors (conservatively... maybe this can do better later). Essentially, all it does is check that every branch is a constructor application with no other function applications.If so, set the 1 flag which can be used by the productivity check idrisCheck if, in a given group of type declarations mut_ns, the constructor cn : ty is strictly positive, and update the context accordinglyidrisCalculate the totality of a function from its patterns. Either follow the size change graph (if inductive) or check for productivity (if coinductive) idris3Calculate the size change graph for this definitionsSCG for a function f consists of a list of: (g, [(a1, sizechange1), (a2, sizechange2), ..., (an, sizechangen)])where g is a function called a1 ... an are the arguments of f in positions 1..n of g sizechange1 ... sizechange2 is how their size has changed wrt the input to f Nothing, if the argument is unrelated to the input idristhe group of type declarationsidristhe constructor  ;&Idris' 'Type Provider' implementation.BSD3The Idris Community.None3 idris2Wrap a type provider in the type of type providers idris\Handle an error, if the type provider returned an error. Otherwise return the provided term.  <#Code to handle import declarations.BSD3The Idris Community.None idris*Get the index file name for a package nameidris1Case sensitive file existence check for Mac OS X.idris6Case sensitive directory existence check for Mac OS X.  =None) idris REPL commands idrisEach FV should be either a type declaration (at most one) or a clause defining the same name. idris-If false, use prover, if true, use elab shellD         D         >Data structures common to all iPKG file formats.BSD3The Idris Community.None idris Description of an Idris package. idrisName associated with a package. idris)List of packages this package depends on. idris!Brief description of the package. idris-Version string to associate with the package. idrisLocation of the README file. idris)Description of the licensing information. idrisAuthor information. idrisMaintainer information. idris$Website associated with the package. idrisLocation of the source files. idris&Location of the project's bug tracker. idrisExternal dependencies. idris%Object files required by the package. idrisFMakefile used to build external code. Used as part of the FFI process. idris%List of options to give the compiler. idris!Source directory for Idris files. idris Modules provided by the package. idrisNIf an executable in which module can the Main namespace and function be found. idrisWhat to call the executable. idris.Lists of tests to execute against the package. idris*Default settings for package descriptions.                                    ?Act upon Idris directives.BSD3The Idris Community.None !idris+Run the action corresponding to a directive ! !@4Core representations and code to generate IBC files.BSD3The Idris Community.None;= "idrisWhen IBC is being loaded - we'll load different things (and omit different structures/definitions) depending on which phase we're in. #idriswhen building the module tree $idrisBwhen loading modules for the REPL Bool = True for top level module 'idris*Load an entire package from its index file )idrisQWrite a package index containing all the imports in the current IState Used for  ':search'7 of an entire package, to ensure everything is loaded. &idris0True = reexport, False = make everything privateidris Reexportingidris Reexporting? " # $ % & ' ( ) & ' ( ) % " # $A3Utilities to erase stuff not necessary for runtime.BSD3The Idris Community.None idris.Variables carry certain information with them.idris%dependencies drawn in by the variableidrisJwhich function argument this variable came from (defined only for patvars)idris5name of the metamethod represented by the var, if anyidris Condition is the conjunction of elementary assumptions along the path from the root. Elementary assumption (f, i) means that "function f uses the argument i".idris/Nodes along with sets of reasons for every one.idrisEUseMap maps names to the set of used (reachable) argument positions. bidriszPerform usage analysis, write the relevant information in the internal structures, returning the list of reachable names.idris6Find the minimal consistent usage by forward chaining.WWe use a cleverer implementation that: 1. First transforms Deps into a collection of numbered constraints 2. For each node, we remember the numbers of constraints that contain that node among their preconditions. 3. When performing forward chaining, we perform unit propagation only on the relevant constraints, not all constraints.Typical numbers from the current version of Blodwen: * 56 iterations until fixpoint * out of 20k constraints total, 5-1000 are relevant per iterationidrisIn each iteration, we find the set of nodes immediately reachable from the current set of constraints, and then reduce the set of constraints based on that knowledge.In the implementation, this is phase-shifted. We first reduce the set of constraints, given the newly reachable nodes from the previous iteration, and then compute the set of currently reachable nodes. Then we decide whether to iterate further.idrisRBuild the dependency graph, starting the depth-first search from a list of Names. cidrisBMake a field name out of a data constructor name and field number.idris node indexidris all reachable nodes found so faridris'nodes reached in the previous iterationidrisnumbered constraints b c b cBElaborator utilities.BSD3The Idris Community.None<4| oidrisPGet the list of (index, name) of inaccessible arguments from an elaborated type pidrisFGet the list of (index, name) of inaccessible arguments from the type. ridrisCheck 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!) sidrisXReturn whether inferred term is different from given term (as above, but return a Bool) tidrisCheck 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. }idrisTreat a name as a parameter if it appears in parameter positions in types, and never in a non-parameter position in a (non-param) argument type. idris\Find the type constructor arguments that are parameters, given a list of constructor types.Parameters are names which are unchanged across the structure. They appear at least once in every constructor type, always appear in the same argument position(s), and nothing else ever appears in those argument positions. idrisMark a name as detaggable in the global state (should be called for type and constructor names of single-constructor datatypes) idrisGather up all the outer s and =s in an expression and reintroduce them in a canonical order idris9the name of the family that we are finding parameters foridris5the type of the type constructor (normalised already)idristhe declared constructor types- h i j k l m n o p q r s t u v w x y z { | } ~  - h i j k l m n o p q r s t u v w x y z { | } ~  C Code to elaborate rewrite rules.BSD3The Idris Community.None:\ idris6Make a rewriting lemma for the given type constructor.If it fails, fail silently (it may well fail for some very complex types. We can fix this later, for now this gives us a lot more working rewrites...)  D?Data structures and utilities to work with Idris Documentation.BSD3The Idris Community.None3^>idrisNDetermine a truncation function depending how much docs the user wants to see idrisWGiven a fully-qualified, disambiguated name, construct the documentation object for it  E/Generation of HTML documentation for Idris codeBSD3The Idris Community.None'idris4A map from namespace names to information about themidris2All information to be documented about a namespaceidris7Docstrings containing fully elaborated term annotationsidris@All information to be documented about a single namespace memberidris;Internal representation of a fully qualified namespace nameidris#Either an error message or a result idrisYGenerates HTML documentation for a series of loaded namespaces and their dependencies.idrisMake an error messageidrisIdrisDoc versionidrisRConverts a Name into a [Text] corresponding to the namespace part of a NS Name.idris&Retrieves the namespace part of a Nameidris(String to replace for the root namespaceidris Converts a NsName to string formidris.Fetch info about namespaces and their contentsidrisjRemoves loose interface methods and data constructors, leaving them documented only under their parent.idris9Whether a Name names something which should be documentedidrisWhether a NsItem should be included in the documentation. It must not be Hidden/Private and filterName must return True for the name. Also it must have Docs -- without Docs, nothing can be done.idris~Finds all namespaces indirectly referred by a set of namespaces. The NsItems of the namespaces are searched for references.idris1Gets all namespaces directly referred by a NsItemidrisGReturns an NsDict of containing all known namespaces and their contentsidris!Gets the Accessibility for a NameidrisPredicate saying whether a Name possibly may have docs defined Without this, getDocs from Idris.Docs may fail a pattern match.idrisRetrieves the Docs for a NameidrisExtracts 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 casesidris"Shorter name for extractPTermNamesidris%Helper function for extractPTermNamesidris%Helper function for extractPTermNamesidris%Helper function for extractPTermNamesidrisGenerates 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.idris(Over)writes the  'index.html'Z file in the given directory with an (updated) index of namespaces in the documentationidrisdGenerates a HTML file for a namespace and its contents. The location for e.g. Prelude.Algebra is  basePrelude Algebra.htmlidrisEGenerates a relative filepath for a namespace, appending an extensionidrismGenerates a HTML type signature with proper tags TODO: Turn docstrings into title attributes more robustlyidris,Generates HTML documentation for a function.idrisaGenerates HTML documentation for any Docs type TODO: Generate actual signatures for interfaces idris7Generates everything but the actual content of the page idrisNon-break space character idrisGReturns a list of namespaces already documented in a IdrisDoc directory idris?Copies IdrisDoc dependencies such as stylesheets to a directory idris<IState where all necessary information is extracted from.idris4List of namespaces to generate documentation for.idris8The directory to which documentation will be written.idrisName to convertidrisName to retrieve namespace foridrisNsName to convertidrisIState to fetch info fromidris$List of namespaces to fetch info foridris9Mapping from namespace name to info about its contentsidrisList to remove orphans fromidrisOrphan-free listidris Name to checkidrisPredicate resultidrisAccessibility to checkidrisPredicate resultidris)Mappings of namespaces and their contentsidrisSet of namespaces to traceidris'Set of namespaces which has been tracedidris-Set of namespaces to trace and all traced oneidris7The name to get all directly referred namespaces foridris+IState containing accessibility informationidrisThe Name to retrieve access foridrisThe Name to testidris The resultidris!IState to extract infomation fromidrisName to load Docs foridrisWhere to extract names fromidrisExtracted namesidrisWhere to extract names fromidrisExtracted namesidris&Needed to determine the types of namesidris$All info from which to generate docsidris=The base directory to which documentation will be written.idris1Set of namespace names to include in the indexidris=The base directory to which documentation will be written.idris&Needed to determine the types of namesidris8The name of the namespace to create documentation foridrisThe contents of the namespaceidris=The base directory to which documentation will be written.idris Namespace to generate a path foridrisExtension suffixidris&Needed to determine the types of namesidris%Type to generate type declaration foridrisResulting HTMLidris&Needed to determine the types of namesidrisFunction to generate block foridrisResulting HTMLidris&Needed to determine the types of namesidris)Namespace item to generate HTML block foridrisResulting HTML idris&Namespace name, unless it is the indexidris Inner HTML idris%The base directory containing the docs+ directory with existing namespace pages idris=The base directory to which dependencies should be written  FDOptimisations for Idris code i.e. Forcing, detagging and collapsing.BSD3The Idris Community.None;= idrisNNeed to saturate arguments first to ensure that optimisation happens uniformly  GCode to deal with DSL blocks.BSD3The Idris Community.Noneaidris$Replace DSL-bound variable in a term  HParse Expressions.BSD3The Idris Community.None<N? idrisParses 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 | try 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 idrisNames: n1, n2, n3, ... n idris(Parses a record field setter expression  RecordType ::= record '{' FieldTypeList '}';  C FieldTypeList ::= FieldType | FieldType ',' FieldTypeList ;   FieldType ::= FnName '=' Expr ; idris&the FC is for highlighting information idris Allow implicit type declarations idris#Disallow implicit type declarations idris/Implicits hare are scoped rather than top level idris!Allow scoped constraint arguments idris Parses an expression as a whole  FullExpr ::= Expr EOF_t; idrisParses an expression  Expr ::= Pi idris4Parses an expression with possible operator applied  OpExpr ::= ; idrisIParses either an internally defined expression or a user-defined one E Expr' ::= "External (User-defined) Syntax" | InternalExpr; idris!Parses a user-defined expression idris(Parses a simple user-defined expression idrisNTries to parse a user-defined expression given a list of syntactic extensions idris&Parses a (normal) built-in expression  InternalExpr ::= UnifyLog | RecordType | SimpleExpr | Lambda | QuoteGoal | Let | If | RewriteTerm | CaseExpr | DoBlock | App ; idris Parses the "impossible" keyword  Impossible ::=   idrisParses a case expression  CaseExpr ::= 'case' Expr 'of'# OpenBlock CaseOption+ CloseBlock; idris#Parses a case in a case expression % CaseOption ::= Expr (Impossible | '=>' Expr) Terminator ; idrisParses a proof block  ProofExpr ::= proof# OpenBlock Tactic'* CloseBlock ; idrisParses a tactics block  TacticsExpr :=  ! OpenBlock Tactic'* CloseBlock ; idris+Parses a simple expression @ SimpleExpr ::=| ? Name | % implementation | Refl} ('{' Expr '}')? | ProofExpr | TacticsExpr | FnName | Idiom | List | Alt | Bracketed | Constant | Type | Void. | Quasiquote | NameQuote | Unquote | '_' ; @ idris$Parses an expression in parentheses  Bracketed ::= '(' Bracketed' idris+Parses the rest of an expression in braces z Bracketed' ::= ')' | Expr ')' | ExprList ')' | DependentPair ')' | Operator Expr ')' | Expr Operator ')' ; idris<Parses the rest of a dependent pair after '(' or '(Expr **' idrisGParse the contents of parentheses, after an expression has been parsed. idris(Finds optimal type for integer constant idrisAParses an alternative expression @ Alt ::= '(|' Expr_List '|)';7Expr_List ::= Expr' | Expr' ',' Expr_List ; @ idris+Parses a possibly hidden simple expression  HSimpleExpr ::=  SimpleExpr | SimpleExpr ; idris3Parses a unification log expression UnifyLog ::= %   SimpleExpr ; idris7Parses a new-style tactics expression RunTactics ::= %   SimpleExpr ; idris0Parses a disambiguation expression Disamb ::= with NameList Expr ; idris!Parses a no implicits expression  NoImplicits ::= %   SimpleExpr ; idris)Parses a function application expression  App ::=  mkForeignI Arg Arg* | MatchApp | SimpleExpr Arg* ; MatchApp ::= SimpleExpr <== FnName ; idrisParses a function argument < Arg ::= ImplicitArg | ConstraintArg | SimpleExpr ; idris%Parses an implicit function argument  ImplicitArg ::= '{' Name ('=' Expr)? '}' ; idrisMParses a constraint argument (for selecting a named interface implementation) . ConstraintArg ::= '@{' Expr '}' ; idrisRParses a quasiquote expression (for building reflected terms using the elaborator) Quasiquote ::= '`(' Expr ')' idris_Parses an unquoting inside a quasiquotation (for building reflected terms using the elaborator) Unquote ::= ',' Expr idrisQParses a quotation of a name (for using the elaborator to resolve boring details) NameQuote ::= '`{' Name '}' idris7Creates setters for record types on necessary functions idrisParses a type signature  TypeSig ::= : Expr ;  $ TypeExpr ::= ConstraintList? Expr; idrisParses a lambda expression  Lambda ::=  TypeOptDeclList LambdaTail |  SimpleExprList LambdaTail ;  G SimpleExprList ::= SimpleExpr | SimpleExpr ',' SimpleExprList ;  # LambdaTail ::= Impossible | '=>' Expr idris!Parses a term rewrite expression  RewriteTerm ::= rewrite Expr (==> Expr)? 'in' Expr ; idris Parse rig count for linear types idris!Parses a let binding @ Let ::= 'let' Name TypeSig'? '=' Expr 'in' Expr | 'let' Expr' '=' Expr' 'in' ExprTypeSig' ::= : Expr' ; @ idris Parses a conditional expression  If ::= 'if' Expr 'then' Expr 'else' Expr idrisParses a quote goal QuoteGoal ::=   Name by Expr 'in' Expr ; idris!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 ; idris+Parses Possible Options for Pi Expressions  PiOpts ::= ? idrisParses a type constraint list )ConstraintList ::= '(' Expr_List ')' '=>' | Expr '=>' ; idrisParses a type declaration list E TypeDeclList ::= FunctionSignatureList | NameList TypeSig ; ZFunctionSignatureList ::= Name TypeSig | Name TypeSig ',' FunctionSignatureList ; idris8Parses a type declaration list with optional parameters k TypeOptDeclList ::= NameOrPlaceholder TypeSig? | NameOrPlaceholder TypeSig? ',' TypeOptDeclList ; NameOrPlaceHolder ::= Name | '_'; idris`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 ; idrisParses a do-block  Do' ::= Do KeepTerminator; DoBlock ::= 'do' OpenBlock Do'+ CloseBlock ; idris'Parses an expression inside a do block  Do ::= 'let' Name TypeSig'? '=' Expr | 'let' Expr' '='" Expr | 'rewrite Expr | Name '<-' Expr | Expr' '<-' Expr | Expr ; idris'Parses an expression in idiom brackets  Idiom ::= '[|' Expr '|]'; idris'Parses a constant or literal expression Constant ::=  |  |  |  |  | Bits8 | Bits16 | Bits32 | Bits64L | Float_t | Natural_t | VerbatimString_t | String_t | Char_t ; idris$Parse a constant and its source spanidris;Parses a verbatim multi-line string literal (triple-quoted) 1VerbatimString_t ::= '"""' ~'"""' '"'* '"""' ;  idrisParses a static modifier  Static ::=  '%static' ;  idris;A list of available tactics and their argument requirements idrisParses a tactic as a wholeX     X     IParse Data declarations.BSD3The Idris Community.None+<>?K,idrisJParses a record type declaration Record ::= DocComment Accessibility?  FnName TypeSig 'where'1 OpenBlock Constructor KeepTerminator CloseBlock;idris:Parses data declaration type (normal or codata) DataI ::= 'data' | ;idrisParses a data type declaration Data ::= DocComment? Accessibility? DataI FnName TypeSig ExplicitTypeDataRest? | DocComment? Accessibility? DataI FnName Name* DataRest? ; Constructor' ::= Constructor KeepTerminator; ExplicitTypeDataRest ::= 'where'$ OpenBlock Constructor'* CloseBlock; DataRest ::= '='0 SimpleConstructorList Terminator | 'where'U! ; SimpleConstructorList ::= SimpleConstructor | SimpleConstructor '|' SimpleConstructorList ;idrisSParses a type constructor declaration Constructor ::= DocComment? FnName TypeSig;idrisuParses a constructor for simple discriminated union data types SimpleConstructor ::= FnName SimpleExpr* DocComment?idris'Parses a dsl block declaration DSL ::= ( FnName OpenBlock Overload'+ CloseBlock;idrisChecks DSL for errors idris9Parses a DSL overload declaration OverloadIdentifier ::= 'let'/ | Identifier; Overload ::= OverloadIdentifier '=' Expr;  J'Clause generation for coverage checkingBSD3The Idris Community.None<<idrisGenerate a pattern from an  impossible LHS.nWe need this to eliminate the pattern clauses which have been provided explicitly from new clause generation."This takes a type directed approach to disambiguating names. If we can't immediately disambiguate by looking at the expected type, it's an error (we can't do this the usual way of trying it to see what type checks since the whole point of an impossible case is that it won't type check!)idrisGiven 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!idrisGDoes this error result rule out a case as valid when coverage checking?idrisQCheck whether an error is recoverable in the sense needed for coverage checking.KCode to elaborate terms.BSD3The Idris Community.None%]T2 idrisFunction part of application$idriscan't pattern match'idris#The term resulting from elaboration(idris#Information about new metavariables)idris3Deferred declarations as the meaning of case blocks*idris5The potentially extended context from new definitions+idris)Meta-info about the new type declarations,idris!Saved highlights from elaboration-idrisThe new global name counter4idris\Using the elaborator, convert a term in raw syntax to a fully elaborated, typechecked term.]If building a pattern match, we convert undeclared variables from holes to pattern bindings.4Also find deferred names in the term and their types5idris=Build a term autogenerated as an interface method definition.o(Separate, so we don't go overboard resolving things that we don't know about yet on the LHS of a pattern def)6idrisreturn whether arguments of the given constructor name can be matched on. If they're polymorphic, no, unless the type has beed made concrete by the time we get around to elaborating the argument.9idrisReturns the set of declarations we need to add to complete the definition (most likely case blocks to elaborate) as well as declarations resulting from user tactic scripts (%runElab);idrisBUse the local elab context to work out the highlighting for a nameDidris9Compute the appropriate name for a top-level metavariableJidrisRDo the left-over work after creating declarations in reflected elaborator scripts.$#"! %&-,+*)('.3210/456789:;<=>?@ABCDEFGHIJ..3210/%&-,+*)('456$#"! 789:;<=>?@ABCDEFGHIJLCode to elaborate values.BSD3The Idris Community.None[LidrisqElaborate a value, returning any new bindings created (this will only happen if elaborating as a pattern clause)OidrisTry running the term directly (as IO ()) or with >>= printLn appended (for other IO _), then printing it as an Integer (as a default numeric type), then printing it as any Showable thingLMNOPMLNOPMCode to elaborate types.BSD3The Idris Community.None^RidrisIElaborate a top-level type declaration - for example, "foo : Int -> Int".Ridris The precise location of the nameQRSTUQRSTUNA Hoogle for Idris.BSD3The Idris Community.NoneV}idris;The state corresponding to an attempted match of two types.idris#names which have yet to be resolvedidrisOarguments and interface constraints for each type which have yet to be resolvedidristhe score so faridrisall names that have been usedidrisA list of interface constraintsidrisGA directed acyclic graph representing the arguments to a function The B represents the position of the argument (1st argument, 2nd, etc.)idrisRKeeps a record of the modifications made to match one type signature with anotheridristransposition of argumentsidris#application of symmetry of equality idris"directional" modifications!idrisHomogenous tuples"idris)Asymmetric modifications to keep track of#idris<Conduct a type-directed search using a given match predicateWidrisOur default search predicate.$idris.reverse the edges for a directed acyclic graph%idrisCompute 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)]&idrisCollect 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'idris+Remove a node from a directed acyclic graph(idris=Could be a functor instance, but let's avoid name overloading)idrisgThis 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.Xidris Convert a  to an B to provide an order for search results. Lower scores are better.*idrisCompute the power set+idrisTry 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.%idrisfilter to remove some argumentsVWXVWXO"Code to elaborate data structures.BSD3The Idris Community.None~ggPCode to elaborate records.BSD3The Idris Community.None@hidrisElaborate a record declaration,idris-Creates and elaborates a projection function.-idris/Creates and elaborates an update function. If optionalE is true, we will not fail if we can't elaborate the update function..idrisPost-fixes a name with "_in"./idris4Creates a PArg with a given plicity, name, and term.0idrisMachine name "rec".1idrisCCreates an PArg from a plicity and a name where the term is a PRef.h idris+The documentation for the whole declarationidris"The name of the type being definedidris-The precise source location of the tycon nameidris Parameters idrisParameter Docs idrisFields idrisConstructor Name idrisConstructor Doc idrisConstructor SyntaxInfo2idrisRecord type nameidris ParametersidrisFieldsidrisConstructor Nameidris Target type, idris'Name of the argument in the constructoridrisParameter namesidrisProjection NameidrisProjection PlicityidrisProjection TypeidrisProjection DocumentationidrisProjection SyntaxInfo idrisProjection target type idrisData constructor tame idris$Placeholder Arguments to constructor idrisAll Field Names idrisArgument Index- idris'Name of the argument in the constructoridrisParameter namesidris Field Nameidris Field Plicityidris Field TypeidrisField DocumentationidrisField SyntaxInfo idrisProjection Source Type idrisData Constructor Name idrisArguments to constructor idris All fields idrisArgument IndexidrisOptionalhhQCode to elaborate interfaces.BSD3The Idris Community.None3idris:Get the docstring corresponding to a member, if one exists4idrisvIn a top level type for a method, expand all the method names' namespaces so that we don't have to disambiguate later5idris(Find the determining parameter locationsiidrisSuperclass constraintsidris Parameters idrisdetermining params idrisinterface body idris%implementation ctor name and location idrisimplementation ctor docsiiR$Transformations for elaborate terms.BSD3The Idris Community.NonekkS#Code to run the elaborator process.BSD3The Idris Community.None5llTCode to elaborate instances.BSD3The Idris Community.None6idrisFImplicitly bind variables from the implementation head in method types7idrisPropagate interface parameters to method bodies, if they're not already there, and they are needed (i.e. appear in method's type)8idrisCheck a given method definition is injective, if the interface info says it needs to be. Takes originally written decl and the one with name decoration, so we know which name to look up.m idrisphaseidris constraintsidris$parent dictionary names (optionally) idris the interface idris"precise location of interface name idris*interface parameters (i.e. implementation) idris=Extra arguments in scope (e.g. implementation in where block)idrisfull implementation typeidris explicit namemmUCode to elaborate clauses.BSD3The Idris Community.None/nidris\Elaborate a collection of left-hand and right-hand pairs - that is, a top-level definition.pidrisFind staticY applications in a term and partially evaluate them. Return any new transformation rulesqidrisChecks if the clause is a possible left hand side. NOTE: A lot of this is repeated for reflected definitions in Idris.Elab.Term One day, these should be merged, but until then remember that if you edit this you might need to edit the other version...tidrisHReturn the elaborated LHS/RHS, and the original LHS with implicits addeduidris3Apply a transformation to all RHSes and nested RHSs nopqrstuv nopqrstuvV%Execute Idris code and deal with FFI.BSD3The Idris Community.NoneCVwwW!Code to elaborate type providers.BSD3The Idris Community.NoneexidrisElaborate a type providerxxXCode to elaborate declarations.BSD3The Idris Community.None3;=>?yidris;Top level elaborator info, supporting recursive elaborationzidris'Return the elaborated term which calls main{idrisElaborate primitivesyz{|}~}~|z{yYIdris' parser.BSD3The Idris Community.None+<K+6idrisParses module definition % ModuleHeader ::= DocComment_t? 'module' Identifier_t ';'?; 9idrisParses an import statement  Import ::= 'import' Identifier_t ';'?; :idrisParses program source  Prog ::= Decl* EOF; idrisParses a top-level declaration Decl ::= Decl' | Using | Params | Mutual | Namespace | Interface | Implementation | DSL | Directive | Provider | Transform | Import! | RunElabDecl ; ;idris9Parses a top-level declaration with possible syntax sugar IDecl' ::= Fixity | FunDecl' | Data | Record | SyntaxDecl ; <idrisIParses a syntax extension declaration (and adds the rule to parser state)  SyntaxDecl ::= SyntaxRule; =idris Extend an  ' with a new syntax extension. See also .idrisLike =, but no effect on the IBC.>idris%Parses a syntax extension declaration SyntaxRuleOpts ::= term | ?;  !SyntaxRule ::= SyntaxRuleOpts? syntax SyntaxSym+ '=' TypeExpr Terminator; SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; @idrisGParses a syntax symbol (either binding variable, keyword or expression) SyntaxSym ::= '[' Name_t ']' | '{' Name_t '}' | Name_t | StringLiteral_t ; Aidris8Parses a function declaration with possible syntax sugar  FunDecl ::= FunDecl'; BidrisParses a function declaration } FunDecl' ::= DocComment_t? FnOpts* Accessibility? FnOpts* FnName TypeSig Terminator | Postulate | Pattern | CAF ; Cidris4Parses a series of function and accessbility options 'FnOpts ::= FnOpt* Accessibility FnOpt* DidrisParses a function option  FnOpt ::= total | partial | covering |   | %  no_implicit | %  assert_total | %  error_handler | %  reflection | % K '[' NameTimesList? ']' ;  NameTimes ::= FnName Natural?; BNameTimesList ::= NameTimes | NameTimes ',' NameTimesList ; EidrisParses a postulate Postulate ::= DocComment_t? E= FnOpts* Accesibility? FnOpts* FnName TypeSig Terminator ; FidrisParses a using declaration  Using ::= 6 '(' UsingDeclList ')' OpenBlock Decl* CloseBlock ; GidrisParses a parameters declaration  Params ::=  parameters5 '(' TypeDeclList ')' OpenBlock Decl* CloseBlock ; HidrisParses an open blockIidris>Parses a mutual declaration (for mutually recursive functions)  Mutual ::= I OpenBlock Decl* CloseBlock ; JidrisParses a namespace declaration Namespace ::= J+ identifier OpenBlock Decl+ CloseBlock ; Kidris,Parses a methods block (for implementations)  ImplementationBlock ::= 'where' OpenBlock FnDecl* CloseBlock Lidris;Parses a methods and implementations block (for interfaces) >MethodOrImplementation ::= FnDecl | Implementation ; InterfaceBlock ::= 'where'? OpenBlock Constructor? MethodOrImplementation* CloseBlock ; MidrisParses an interface declaration ,InterfaceArgument ::= Name | '(' Name : Expr ')' ; -Interface ::= DocComment_t? Accessibility?  interface= ConstraintList? Name InterfaceArgument* InterfaceBlock? ; Nidris.Parses an interface implementation declaration ' Implementation ::= DocComment_t? NQ ImplementationName? ConstraintList? Name SimpleExpr* ImplementationBlock? ; %ImplementationName ::= '[' Name ']'; OidrisParse a docstringPidrisParses a using declaration list <UsingDeclList ::= UsingDeclList' | NameList TypeSig ;  DUsingDeclList' ::= UsingDecl | UsingDecl ',' UsingDeclList' ; .NameList ::= Name | Name ',' NameList ; QidrisParses a using declaration 6UsingDecl ::= FnName TypeSig | FnName FnName+ ; ?idrisParse a clause with patterns Pattern ::= Clause; Ridris-Parse a constant applicative form declaration CAF ::= 'let' FnName '=' Expr Terminator; SidrisParse an argument expression ArgExpr ::= HSimpleExpr | ; Tidris%Parse a right hand side of a function RHS ::= '=' Expr | ?=* RHSName? Expr | Impossible ; RHSName ::= '{' FnName '}'; UidrisParses 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; VidrisParses with pattern  WExpr ::= '|' Expr'; WidrisParses a where block WhereBlock ::= 'where' OpenBlock Decl+ CloseBlock; Xidris-Parses a code generation target language name  Codegen ::= C | Java |  JavaScript | Node | LLVM |  ; YidrisParses a compiler directive 7 StringList ::= String | String ',' StringList ;  Directive ::= % Directive'; Directive' ::= lib, CodeGen String_t | link+ CodeGen String_t | flag+ CodeGen String_t | include( CodeGen String_t | hide Name | freeze Name | thaw Name | access& Accessibility |  'default' Totality | logging Natural | dynamic" StringList |  q( Name NameList | error_handlers Name NameList | language  | language  |  deprecated Name String | fragile Name Reason ; ZidrisParses a totality  Totality ::= partial | total | covering [idrisParses a type provider Provider ::= DocComment_t? % provide' Provider_What? '(' FnName TypeSig ')' with Expr; ProviderWhat ::= proof | term | 'type' | E \idrisParses a transform Transform ::= % \ Expr ==> Expr ]idris.Parses a top-level reflected elaborator script RunElabDecl ::= %   Expr idris Parses an expression from input idrisParses a constant form input idrisParses a tactic from input idris5Parses a do-step from input (used in the elab shell) idrisParse module header and importsidrisCCheck if the coloring matches the options and corrects if necessary^idrisUA program is a list of declarations, possibly with associated documentation strings._idrisCollect { with the same function nameidris<Load idris module and show error if something wrong happens `idrisLoad idris module idrisLoad idris code from file aidrisALoad idris source code and show error if something wrong happens bidrisLoad Idris source codecidrisAdds names to hide list  J M X Y ^ q  X ^ q  M J YZParser for the REPL commands.BSD3The Idris Community.None<-[BSupport for command-line completion at the REPL and in the prover.BSD3The Idris Community.None3didris>Get the user-visible names from the current interpreter state.eidris4Get the completion function for a particular commandidris.Complete REPL commands and defined identifiersidris$Complete tactics and their argumentsidris&The names of current local assumptions\Idris' theorem prover.BSD3The Idris Community.None6idrisLaunch the proof shellfidrisrun with SIGINT handleridrisrun if mTry finishedidrisrun if mTry was interrupted]5Module chaser to determine cycles and import modules.BSD3The Idris Community.None<=idrisGiven a module tree, return the list of files to be loaded. If any module has a descendent which needs reloading, return its source, otherwise return the IBCgidris:Strip quotes and the backslash escapes that Haskeline addsidrisalready guaranteed builtidrisimport lists (don't reparse)  ^+Module to provide case split functionality.BSD3The Idris Community.None<I<hidrisGiven a variable to split, and a term application, return a list of variable updates, paired with a flag to say whether the given update typechecks (False = impossible) if the flag is ' the splits should be output with the  impossible1 flag, otherwise they should be output as normaliidrishIf any names are unified, make sure they stay unified. Always prefer user provided name (first pattern)idris line numberidrisvariableidris name of fileidris(line number that the type is declared onidris Function nameidrisUser given nameidrisSource file nameidris%line number that the type is declaredidris Function nameidrisSource file name_LBits and pieces for editing source files interactively, called from the REPLBSD3The Idris Community.NoneKF`6Search loaded Idris code and named modules for things.BSD3The Idris Community.None;=RidrisFind 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 aproposidrisbFind modules whose names or docstrings contain all the space-delimited components of some string.aDeal with external things.BSD3The Idris Community.NoneSb%The JavaScript common code generator.BSD3The Idris Community.NoneZidrisCode generation stats hold information about the generated user code. Based on that information we add additional code to make things work.jidrisGenerate code for each declaration and collect stats. LFunctions are turned into JS function declarations. They are preceded by a comment that gives their name. Constructor declarations are ignored.  cThe JavaScript code generator.BSD3The Idris Community.None\"d8The default code generator for Idris, generating C code.BSD3The Idris Community.None<akidrisoutput file nameidris-generate executable if True, only .o if Falseidris include filesidrisextra object filesidris extra compiler flags (libraries)idrisextra compiler flags (anything)idris%interfaces too (so make a .o instead)e$Coordinates the compilation process.BSD3The Idris Community.None;<cidris2Compile to simplified forms and return CodegenInfotSafed5lf6Get information about Idris. 2016 The Idris CommunityBSD3The Idris Community.Nonegidris2Get the platform-specific, user-specific Idris diridris9Locate the platform-specific location for the init scriptg#Common utilities used by all modes.BSD3The Idris Community.NoneiBh'Entry Point for the Idris REPL and CLI.BSD3The Idris Community.None<tidris Run the REPLidrisRun the REPL serveridris(Run a command on the server on localhostidrisRun the IdeModemidrisRun IDEMode commandsnidris7Show a term for IDEMode with the specified implicitnessoidris8The prompt consists of the currently loaded modules, or Idris if there are nonepidris-Determine whether a file uses literate syntaxidrisThe initial stateidrisThe loaded modulesidrisThe file to edit (with :e)midris^ The handle for communicationidris$^ The continuation ID for the clientidris^ The original IStateidris^ The current open fileidris^ The currently loaded modulesidris^ The command to processi+Main function to decide Idris' mode of use.BSD3The Idris Community.None|bidrisHow to run Idris programs.idrisThe main function of Idris that when given a set of Options will launch Idris into the desired interaction mode either: REPL; Compiler; Script execution; or IDE Mode.idrisZInvoke as if from command line. It is an error if there are unresolved totality problems.qidris&Execute the provided Idris expression.ridrisRun the initialisation scriptjNone}RidrisList idris packages installed          k5A parser for the CmdOptions for the Idris executable.BSD3The Idris Community.Nonep !"#$%&234 42!$"%#&3liPKG1 file parser and package description information.BSD3The Idris Community.None<idrisTParses a filename. | | Treated for now as an identifier or a double-quoted string.  m.Functionality for working with Idris packages.BSD3The Idris Community.None idris+Run the package through the idris compiler.idrisType check packages onlybThis differs from build in that executables are not built, if the package contains an executable.idris!Check a package and start a REPL.?This function only works with packages that have a main module.idrisClean Package build files idrisGenerate 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!idrisCBuild a package with a sythesized main function that runs the tests"idrisInstall package/idris>Invoke a Makefile's target with an enriched system environment0idris#Invoke a Makefile's default target.1idris!Invoke a Makefile's clean target.2idriskMerge an option list representing the command line options into those specified for a package description.This is not a complete union between the two options sets. First, to prevent important package specified options from being overwritten. Second, the semantics for this merge are not fully defined.4A discussion for this is on the issue tracker: 3https://github.com/idris-lang/Idris-dev/issues/1448idrisCommand line optionsidrisProvide Warningsidris*(Should we install, Location of iPKG file)idrisCommand line Optionsidris Show Warningsidrisquit on failureidrisPath to ipkg file.idrisCommand line OptionsidrisPath to ipkg file.idrisCommand line options.idrisPath to ipkg file. idrisCommand line options.idris((Should we install?, Path to ipkg file).!idrisCommand line options.idrisPath to ipkg file."idrisAlternate install locationidris iPKG file.2idrisThe command line optionsidrisThe package options !"#$%&'()*+,-./012 !"#$%&'()*+,-./012suvwxyz{|}~o      !"#$%&'()*+,-./0123456789:;<==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~l      !"#$%&'()*+,-./0123456 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U 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 { | } ~                                                                                                                                                                    !"#$%&'()*+,-./012K3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsstuvwxyz{|}~|\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                        !!!!!!!!""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"-"0"1"2"3"4"5"6"7"8"9":";"<"=">"?"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X#Y#Z#[#\#]#^#_#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~#########=####################################################################################$$$$$$$$$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $ $$$$$$$$$$$$$$$$$$$ $!$"$#$$$%$&$'$($)$*$+$,$-$.$/$0$1$2$3$4$5$6$7$8$9$:$;$$<$"$=$$>$$$?$@$A$B$$$C$D$$$$-$4$.$E$F$G$H$I$ $J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ !$ "$ #$ $$ %$ &$ '$ ($ )$ *$ +$ ,$ -$ .$ /$ 0$ 1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 8$ 9$ :$ ;$ <$ =$ >$ ?$ @$ A$ B$ C$ D$ D$ E$ F$ G$ H$ I$ J$ K$ L$ M$ N$ O$ P$ Q$ R$ S$ T$ U$ V$ W$ X$ Y$ Z$ [$ \$ ]$ ^$ _$ `$ a$ b$ c$ d$ e$ f$ g$ h$ i$ j$ k$ l$ m$ n$ o$ p$ q$ r$ s$ t$ u$ v$ w$ x$ y$ z$ {$ |$ }$ ~$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ !$ "$ #$ $$ %$ &$ '$ ($ )$ *$ +$ ,$ -$ .$ /$ 0$ 1$ 2$ 3$ 4$ 5$ 6$ 7$ 8$ 9$ :$ ;$ <$ =$ >$ ?$ @$ A$ B$ C$ D$ E$ F$ G$ H$ I$ J$ K$ L$ M$ N$ O$ P$ Q$ R$ S$ T$ U$ V$ W$ X$ Y$ Z$ [$ \$ ]$ ^$ _$ `$ a$ b$ c$ d$ e$ f$ g$ h$ i$ j$ k$ l$ m$ n$ o$ p$ q$ r$ s$ t$ u$ v$ w$ x$ y$ z$ {$ |$ }$ ~$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & & & & & & & & & & & & & & & & & ' ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) !) ") #) $) %) &) ') () )) *) +) ,) -) .) /) 0) 1) 2) 3) 4) 5) 6) 7) 8) 9) :) ;) <) =) >) ?) @) A) B) C) D) E) F) G) H) I) J) K) L) M) N) O) P) Q) R) S) T) U) V) W) X) Y) Z) [) \) ]) ^) _) `) a) b) c) d) e) f) g) h) i) j) k) l) m) n) o) p) q) r) s) t) u) v) w) x) y) z) {) |) }) ~) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )) )) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) * * + + + + , , - - . / 0 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 .2 /2 02 12 22 32 42 52 62 72 82 92 :2 ;2 <2 =2 >2 ?2 @2 A2 B2 C2 D2 E2 F2 G2 H2 I3 J3 K3 L3 M4 N4 O4 P4 Q4 R4 S4 T4 U4 V4 W4 X4 Y4 Z4 [4 \4 ]4 ^4 _4 `5 a5 b5 c5 d5 e5 f5 g5 h5 i5 j5 k5 l5 m5 n5 o5 p5 q5 r5 s5 t5 u5 v5 w5 x5 y5 z5 {5 |5 }5 ~5 6 6 6 6 6 6 6 6 6 6 6 6 6s6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 : : : : : : : : ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < < < = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = != "= #= $== %= &== '== (= )= *= += ,= -= .= /==== 0= 1= 2= 3== 4= 5= 6= 7> 8> 8> 9> :> ;> <> => >> ?> @> A> B> C> D> E> F> G> H> I> J> K> L> M> N? O@ P@ Q@ R@ S@ T@ U@ V@ W@ X@ Y@ Z@ [@ \@ ]@ ^@ _@ `@ a@ b@ c@ d@ e@ f@ g@ h@ i@ j@ k@ l@ m@ n@ o@ p@ q@ r@ s@ t@ u@ v@ w@ x@ y@ z@ {@ |@ }@ ~@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C C D D D D D D D D D D D D D D D D D E F F F F F F F F F G G H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H HHHHHHHHHH HqHkH H H HH HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7I8I9I:I;I<I=I>I?I@IAIBJCJDJEJFKGKGKHKIKJKKKLKMKNKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsLtLuLvLwLxMyMzM{M|M}N~NNNNNNNNNNNNNNNNOPQQRSTUUUUUUUUUVWXXXXXXYYYYYYYYYYYYYYYYYYYZZZZ[[[\\\]]]]]]]]]]^^^^^^^^________```````````aabbbbbbbbbbbbbbccccccdeee ffffffffffffffff fg g g g hhhhhhhiiijjjjjjjjj j!j"j#j$j%j&j'j(j)j*j+k,k-k.l/l0l1l2l3l4l5l6l7l8m9m:m;m<m=m>m?m@mAmBmCmDmEmFmGmHmImJmKmLmMmNmmOnPQRoSoToUoVoWoXoYZp[p\q]q^_`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_` _`{_`|_`}_` _`~_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`rrrrr           (011 122223444455777777777:<<@@AAAAAAAAAADEEEEEEEEEEE E E E E EEEEEEEEEEEEEEEEEEE E!E"E#E$F%G&'()*+,-./012N3N2N4N5N6N7N8N9N:N;N<N=N>N?N@NANBNCNDNENFNGPHPIPJPKPLPMPNQOQPQQTRTSTTYUYVYWYXYYYZY[Y\Y]Y^Y_Y`YaYbY YcYdY YeYfYgYhYiYjYkYlYmYnY5YoYpYqYrYsYtYuYvYwYxYyYzY{Y|[}[~\]^^bdthhhhii"idris-1.3.1-HMhXn3ahTlmAYa6dTdYaVBIRTS.JavaScript.AST Idris.Colours Idris.Help IRTS.SystemUtil.DynamicLinker Idris.Core.TT Idris.UnlitIdris.DocstringsIdris.Core.ConstraintsIdris.Core.CaseTreeIdris.Core.EvaluateIdris.Core.WHNFIdris.Core.UnifyIdris.Core.TypecheckIdris.Core.ProofTermIdris.Core.DeepSeqIdris.Core.Binary Idris.IdeMode IRTS.LangIdris.Primitives IRTS.LangOptsIRTS.JavaScript.SpecializeIRTS.JavaScript.PrimOpIRTS.JavaScript.NameIRTS.JavaScript.LangTransformsIRTS.DefunctionaliseIRTS.Simplified IRTS.InlinerIRTS.CodegenCommon Idris.Options IRTS.Bytecode IRTS.Portable IRTS.DumpBCIdris.Core.ProofStateIdris.Core.ElaborateIdris.AbsSyntaxTree Idris.DeepSeqIdris.ASTUtilsUtil.ScreenSize Util.SystemIdris.AbsSyntaxIdris.WhoCallsIdris.TransformsIdris.REPL.Browse Idris.InlinerIdris.ErrReverseIdris.Elab.QuasiquoteIdris.Elab.AsPatIdris.DelaborateIdris.ReflectionIdris.ProofSearchIdris.PartialEval Idris.OutputIdris.Parser.StackIdris.Parser.HelpersIdris.Parser.Ops Idris.ErrorIdris.TerminationIdris.Providers Idris.ImportsIdris.REPL.CommandsIdris.Package.CommonIdris.Directives Idris.IBC Idris.ErasureIdris.Elab.UtilsIdris.Elab.Rewrite Idris.DocsIdris.IdrisDocIdris.DataOpts Idris.DSLIdris.Parser.ExprIdris.Parser.DataIdris.CoverageIdris.Elab.TermIdris.Elab.ValueIdris.Elab.TypeIdris.TypeSearchIdris.Elab.DataIdris.Elab.RecordIdris.Elab.InterfaceIdris.Elab.TransformIdris.Elab.RunElabIdris.Elab.ImplementationIdris.Elab.ClauseIdris.Core.ExecuteIdris.Elab.ProviderIdris.ElabDecls Idris.ParserIdris.REPL.ParserIdris.Completion Idris.Prover Idris.ChaserIdris.CaseSplitIdris.Interactive Idris.Apropos IRTS.ExportsIRTS.JavaScript.CodegenIRTS.CodegenJavaScript IRTS.CodegenC IRTS.Compiler Idris.InfoIdris.ModeCommon Idris.REPL Idris.MainIdris.Info.ShowIdris.CmdOptionsIdris.Package.Parser Idris.PackageBuildFlags_idris Paths_idris Tools_idrisUtil.Net Util.Pretty withExtent Version_idrisJsExprJsNull JsUndefinedJsThisJsLambdaJsAppJsNewJsPartJsMethodJsVar JsArrayProjJsObjJsPropJsIntJsBool JsIntegerJsDoubleJsStrJsArray JsErrorExpJsUniOpJsBinOp JsForeignJsB2IJsForceJsStmtJsEmpty JsComment JsExprStmtJsFunJsSeqJsReturnJsDecVar JsDecConstJsDecLetJsSetJsIf JsSwitchCaseJsError JsForever JsContinueJsBreak jsCurryLam jsCurryAppjsAppNjsSetVar jsStmt2Text jsAst2TextjsLazy jsExpr2Stmt jsStmt2Expr $fShowJsExpr $fEqJsExpr $fDataJsExpr $fShowJsStmt $fEqJsStmt $fDataJsStmt ColourType KeywordColourBoundVarColourImplicitColourFunctionColour TypeColour DataColour PromptColourPostulateColour ColourTheme keywordColourboundVarColourimplicitColourfunctionColour typeColour dataColour promptColourpostulateColour IdrisColourcolourvivid underlinebolditalic defaultTheme colourisehStartColourise hEndColourise colouriseKwdcolouriseBoundcolouriseImplicit colouriseFun colouriseType colouriseDatacolourisePromptcolouriseKeywordcolourisePostulate$fEqIdrisColour$fShowIdrisColour$fEqColourTheme$fShowColourTheme$fGenericColourTheme$fEqColourType$fShowColourType$fBoundedColourType$fEnumColourTypeCmdArgExprArgNameArgFileArgShellCommandArg ModuleArgPkgArgs NumberArg NamespaceArg OptionArg MetaVarArg ColourArgNoArgSpecialHeaderArgConsoleWidthArgDeclArgManyArgs OptionalArgSeqArgs extraHelp $fShowCmdArgversiongetIdrisDataDirgetIdrisDataFileByNamegetCC getEnvFlags getLibFlagsgetIdrisLibDirgetIdrisDocDirgetIdrisJSRTSDirgetIdrisCRTSDir getIncFlags ForeignFunFunfun_name fun_handle DynamicLibLiblib_name lib_handle tryLoadLib tryLoadFn$fEqDynamicLibEnvTypeTermTypeInfoTI con_namescodata data_opts param_pos mutual_types linear_conDataOptsDataOptCodata DataErrRevDatatypeData d_typename d_typetagd_typed_uniqued_consEnvTTRigCountRig0Rig1RigWTermSizetermsizeTTPVBindAppConstantProjErased ImpossibleInferredTTypeUType AppStatusComplete MaybeHolesHolesNameTypeBoundRefDConTConnt_tagnt_arity nt_uniqueUCs ConstraintFC uconstraintufc UConstraintULTULEUExpUVarUValBinderLamPiLetNLetHoleGHoleGuessPVarPVTy binderCountbinderTy binderImpl binderKind binderValenvlen localnames ImplicitInfoImpltcimplementation toplevel_imp machine_genRawVarRBindRAppRTypeRUType RConstantUniverseNullType UniqueTypeAllTypesConstIBIFlChStrB8B16B32B64ATypeStrType WorldTypeTheWorldVoidTypeForgotArithTyATIntATFloatIntTyITFixedITNativeITBigITCharNativeTyIT8IT16IT32IT64Ctxt SpecialNameWhereNWithNImplementationNParentNMethodNCaseNImplementationCtorNMetaNNameUNNSMNSNSymRefTCOKErrorErrErr'Msg InternalMsg CantUnify InfiniteUnify CantConvert CantSolveGoal UnifyScope CantInferTypeNonFunctionType NotEqualityTooManyArguments CantIntroduceNoSuchVariable WithFnType NoTypeDecl NotInjective CantResolve InvalidTCArgCantResolveAlts NoValidAltsIncompleteTerm UniverseError UniqueErrorUniqueKindErrorProgramLineComment InaccessibleUnknownImplicit CantMatchNonCollapsiblePostulateAlreadyDefinedProofSearchFail NoRewritingAt ElaboratingElaboratingArg ProviderError LoadingFailedReflectionErrorReflectionFailedElabScriptDebugElabScriptStuckRunningElabScriptElabScriptStagingFancyMsg Provenance ExpectedType TooManyArgs InferredValGivenVal SourceTermErrorReportPartTextPartNamePartTermPartRawPart SubReportOutputAnnotationAnnName AnnBoundNameAnnConstAnnDataAnnType AnnKeywordAnnFC AnnTextFmtAnnLinkAnnTermAnnSearchResultAnnErr AnnNamespace AnnQuasiquote AnnAntiquote AnnSyntaxTextFormattingBoldText ItalicText UnderlineText NameOutput TypeOutput FunOutput DataOutput MetavarOutputPostulateOutputFC'unwrapFCFCNoFCFileFC _fc_fname _fc_start_fc_endfc_fnamefc_startfc_endfcInemptyFCfileFCtfaildiscardshowSeppmap traceWhentxtstrtnulltheadsUNsNSsMNcaseNamesImplementationNshowCG emptyContextmapCtxttcname implicitablensrootaddDeflookupCtxtName lookupCtxtlookupCtxtExactdeleteDefExact updateDeftoAlistaddAlist intTyName nativeTyWidth isTypeConst constIsType constDocsfmapMB raw_apply raw_unapply internalNSrigPlusrigMultfstEnvrigEnvsndEnv envBindersenvZero lookupBinder isInjective instantiatesubstV explicitNamespToV addBinderpToVsvToPfinalise pEraseTypesubstpsubst substNames substTerm occurrences noOccurrence freeNamesarityunApplymkAppunListtermSmallerThanforget safeForget forgetEnv safeForgetEnvbindAll bindTyArgs getArgTysgetRetTy substRetTyuniqueNameFrom uniqueName uniqueNameSet uniqueBindersnextNameshowEnv showEnvDbg prettyEnvpureTermweakenTmrefsIn allTTNamespprintTTpprintTTClause pprintRaw bindingOf$fShowFC $fSizedFC$fEqFC $fMonoidFC $fSemigroupFC $fShowFC'$fEqFC'$fShowSpecialName $fShowName $fSizedName $fShowConst $fSizedConst $fEqConst$fSizedUniverse$fShowUniverse $fShowUExp $fSizedUExp$fShowUConstraint$fOrdConstraintFC$fEqConstraintFC $fEqNameType$fSizedNameType $fTermSize[] $fSizedBinder$fShowTT$fEqTT $fPrettyTTo $fSizedTT $fTermSizeTT $fSizedRaw$fSizedErrorReportPart $fShowErr' $fSizedErr'$fShowTC$fAlternativeTC$fApplicativeTC $fMonadPlusTC $fMonadTC $fPrettyNameTypeOutputAnnotation$fPrettyRawOutputAnnotation$fPrettyConstOutputAnnotation$fPrettyArithTyOutputAnnotation $fPrettyNativeTyOutputAnnotation$fPretty[]OutputAnnotation$fPrettyNameOutputAnnotation$fPrettyTCOutputAnnotation$fPrettyErr'OutputAnnotation $fEqOption$fDataFC $fGenericFC$fOrdFC $fDataFC' $fGenericFC'$fOrdFC'$fShowNameOutput$fEqNameOutput$fOrdNameOutput$fGenericNameOutput$fShowTextFormatting$fEqTextFormatting$fOrdTextFormatting$fGenericTextFormatting$fEqSpecialName$fOrdSpecialName$fDataSpecialName$fGenericSpecialName$fEqName $fOrdName $fDataName $fGenericName$fShowNativeTy $fEqNativeTy $fOrdNativeTy$fEnumNativeTy$fDataNativeTy$fGenericNativeTy $fShowIntTy $fEqIntTy $fOrdIntTy $fDataIntTy$fGenericIntTy $fShowArithTy $fEqArithTy $fOrdArithTy $fDataArithTy$fGenericArithTy $fOrdConst $fDataConst$fGenericConst $fEqUniverse $fOrdUniverse$fDataUniverse$fGenericUniverse$fShowImplicitInfo$fEqImplicitInfo$fOrdImplicitInfo$fDataImplicitInfo$fGenericImplicitInfo$fEqUExp $fOrdUExp $fDataUExp $fGenericUExp$fEqUConstraint$fOrdUConstraint$fDataUConstraint$fGenericUConstraint$fShowConstraintFC$fDataConstraintFC$fGenericConstraintFC$fShowNameType $fOrdNameType$fDataNameType$fGenericNameType $fEqAppStatus$fOrdAppStatus$fFunctorAppStatus$fDataAppStatus$fGenericAppStatus$fShowAppStatus$fShowRigCount $fEqRigCount $fOrdRigCount$fDataRigCount$fGenericRigCount $fShowBinder $fEqBinder $fOrdBinder$fFunctorBinder$fFoldableBinder$fTraversableBinder $fDataBinder$fGenericBinder$fOrdTT $fFunctorTT$fDataTT $fGenericTT $fShowRaw$fEqRaw$fOrdRaw $fDataRaw $fGenericRaw$fShowDatatype$fFunctorDatatype $fEqDatatype $fShowDataOpt $fEqDataOpt$fGenericDataOpt$fShowTypeInfo$fGenericTypeInfo$fShowProvenance$fEqProvenance$fOrdProvenance$fDataProvenance$fGenericProvenance$fShowErrorReportPart$fEqErrorReportPart$fOrdErrorReportPart$fDataErrorReportPart$fGenericErrorReportPart$fEqErr' $fOrdErr' $fFunctorErr' $fDataErr' $fGenericErr'$fEqTC $fFunctorTC$fShowOutputAnnotation$fEqOutputAnnotation$fGenericOutputAnnotation$fOrdOutputAnnotationunlitInlineSpace SoftBreak LineBreakEmphStrongCodeLinkImageEntityRawHtmlBlockParaHeader BlockquoteList CodeBlock HtmlBlockHRule Docstring DocStringDocTerm UncheckedCheckedExampleFailing renderDocTermcheckDocstringparseDocstringrenderDocstringoverviewemptyDocstring nullDocstringnoDocs containsText renderHtml annotCode $fShowDocTerm$fGenericDocTerm $fShowInline$fFunctorInline$fFoldableInline$fTraversableInline$fGenericInline $fShowBlock$fFunctorBlock$fFoldableBlock$fTraversableBlock$fGenericBlock$fShowDocstring$fFunctorDocstring$fFoldableDocstring$fTraversableDocstring$fGenericDocstringucheck$fEqVar$fOrdVar $fShowVar $fEqDomain $fOrdDomain $fShowDomainPhase CoverageCheck CompileTimeRunTime ErasureInfoCaseTreeCaseAltCaseAlt'ConCaseFnCase ConstCaseSucCase DefaultCaseSCCaseType UpdatableSharedSC'CaseProjCaseSTerm UnmatchedCaseImpossibleCaseCaseDefsmall namesUsed findCalls findCalls' findUsedArgs simpleCasesubstSCsubstAltmkForce $fShowSC' $fTermSizeSC'$fTermSizeCaseAlt' $fEqCaseType $fOrdCaseType$fShowCaseType$fGenericCaseType$fShowCaseAlt' $fEqCaseAlt' $fOrdCaseAlt'$fFunctorCaseAlt'$fGenericCaseAlt'$fEqSC'$fOrdSC' $fFunctorSC' $fGenericSC' $fShowCaseDef $fShowPhase $fEqPhase $fShowPat$fShowPartition $fShowConType $fEqConType $fShowGroupTTDeclContext next_tvar definitionsMetaInformationEmptyMIDataMIPReasonOtherItself NotCovering NotPositiveUseUndef ExternalIO BelieveMeMutual NotProductiveTotalityTotal ProductivePartial Generated Injectivity AccessibilityHiddenPublicFrozenPrivateCaseInfocase_inlinablecase_alwaysinline tc_dictionaryCaseDefscases_compiletime cases_runtimeDefFunctionTyDeclOperatorCaseOpQuotequoteValueVPVVVBindVBLetVAppVTypeVUTypeVErased VImpossible VConstantVProjVTmpinitEval normaliseC normaliseAllnormaliseBlocking normalisenormaliseTracetoValue quoteTerm specialisesimplify inlineSmall rt_simplifyunfold isUniverseconvEq'convEq initContext mapDefCtxt ctxtAlist addToCtxt setAccess setInjectivesetTotal setRigCountsetMetaInformation addCtxtDef addTyDecl addDatatype addCasedefsimplifyCasedef addOperator lookupNames lookupTyNamelookupTyNameExactlookupTy lookupTyExact isCanonical isConName isTConName isDConName canBeDConNameisFnNameisTCDict conGuardedvisibleDefinitionslookupP lookupP_alllookupDefExact lookupDef lookupNameDef lookupDefAcclookupDefAccExact lookupTotallookupTotalExactlookupRigCountlookupRigCountExactlookupInjectiveExact linearChecklinearCheckArg tcReduciblelookupMetaInformationlookupNameTotal lookupVal lookupTyEnvuniqueNameCtxtuniqueBindersCtxt $fShow(->) $fQuoteValue $fEqValue $fShowValue $fShowDef$fShowAccessibility$fShowTotality$fShowEvalState $fShowEvalOpt $fEqEvalOpt$fGenericCaseDefs$fGenericCaseInfo $fGenericDef$fEqAccessibility$fOrdAccessibility$fGenericAccessibility $fShowPReason $fEqPReason$fGenericPReason $fEqTotality$fGenericTotality$fEqMetaInformation$fShowMetaInformation$fGenericMetaInformation $fShowContext$fGenericContextWEnvwhnfwhnfArgs $fShowWEnvFails FailContextfail_sourcelocfail_fn fail_paramFailAtMatchUnify unrecoverable match_unifyunify $fShowFailAt $fEqFailAt$fEqFailContext$fShowFailContext $fShowUInfo UniqueUseNeverOnceLendOnlyMany convertsCconvertsisHoleerrEnvisTypeconvTyperecheckrecheck_borrowingcheckcheck' checkUnique $fEqUniqueUseGoalGDpremisesgoalType RunTactic' ProofTermrefocus mkProofTerm getProofTermresetProofTermupdateSolvedTermupdateSolvedTerm'updsubst updateSolvedgoalatHolebound_in bound_in_term$fShowBinderPath$fShowTermPath$fShowProofTerm forceDefCtxt$fNFDataCaseAlt' $fNFDataSC'$fNFDataCaseType$fNFDataCaseDefs$fNFDataCaseInfo $fNFDataDef$fNFDataMetaInformation$fNFDataPReason$fNFDataTotality$fNFDataAccessibility $fNFDataTT$fNFDataAppStatus $fNFDataConst$fNFDataArithTy $fNFDataIntTy$fNFDataNativeTy$fNFDataNameType $fNFDataUExp$fNFDataBinder$fNFDataRigCount$fNFDataImplicitInfo$fNFDataErrorReportPart $fNFDataErr'$fNFDataConstraintFC$fNFDataUConstraint$fNFDataProvenance $fNFDataFC' $fNFDataFC $fNFDataRaw$fNFDataUniverse$fNFDataSpecialName$fNFDataOutputAnnotation$fNFDataTextFormatting$fNFDataNameOutput$fNFDataContext $fNFDataName $fBinaryTT $fBinaryUExp$fBinaryNameType$fBinaryUniverse$fBinaryBinder$fBinaryImplicitInfo$fBinaryRigCount $fBinaryRaw $fBinaryConst$fBinarySpecialName $fBinaryName $fBinaryFC' $fBinaryFC $fBinaryErr'$fBinaryConstraintFC$fBinaryUConstraint$fBinaryProvenance$fBinaryErrorReportPartIdeModeCommandREPLCompletions InterpretTypeOf CaseSplit AddClauseAddProofClause AddMissing MakeWithBlock MakeCaseBlock ProofSearch MakeLemmaLoadFileDocsForAproposGetOptsSetOpt MetavariablesWhoCallsCallsWhoBrowseNS TermNormaliseTermShowImplicitsTermNoImplicitsTermElabPrintDef ErrString ErrPPrintGetIdrisVersionWhatDocsOverviewFullOptShowImpl ErrContextSExpabletoSExpSExpSexpList StringAtomBoolAtom IntegerAtom SymbolAtomgetNChargetLen sExpToString sexpToCommand parseMessageconvSExp ideModeEpoch $fSExpableFC$fSExpableOutputAnnotation$fSExpableNameOutput$fSExpable(,,,,)$fSExpable(,,,)$fSExpable(,,) $fSExpable(,) $fSExpable[]$fSExpableMaybe$fSExpableName $fSExpableInt$fSExpableInteger $fSExpable[]0$fSExpableBool$fSExpableSExp$fEqSExp $fShowSExp $fShowOpt LiftStateLSLOptNoInlineLDefsLDeclLFun LConstructorLAltLAlt'LConCase LConstCase LDefaultCaseFTypeFArith FFunction FFunctionIOFStringFUnitFPtr FManagedPtrFCDataFAny FCallTypeFStaticFObject FConstructorPrimFnLPlusLMinusLTimesLUDivLSDivLURemLSRemLAndLOrLXOrLComplLSHLLLSHRLASHRLEqLLtLLeLGtLGeLSLtLSLeLSGtLSGeLSExtLZExtLTrunc LStrConcatLStrLtLStrEqLStrLen LIntFloat LFloatIntLIntStrLStrInt LFloatStr LStrFloatLChIntLIntChLBitCastLFExpLFLogLFSinLFCosLFTanLFASinLFACosLFATanLFATan2LFSqrtLFFloorLFCeilLFNegateLStrHeadLStrTailLStrCons LStrIndexLStrRev LStrSubstrLReadStr LWriteStr LSystemInfoLForkLPar LExternalLCrashLNoOp ExportIFaceExport ExportData ExportFunFDescFConFStrFUnknownFIOFAppLExpLVLAppLLazyAppLLazyExpLForceLLetLLamLProjLConLCaseLConstLForeignLOpLNothingLErrorLVarLocGlob EndiannessNativeBELEaddTags setBaseNamelname getNextName renameArgsaddFnmakeFnliftAllliftDeflift allocUniqueusedArgusedInlsubstrenameoccName $fShowLExp$fShowEndianness$fEqEndianness $fShowLVar$fEqLVar $fShowFDesc $fEqFDesc $fOrdFDesc $fShowExport $fEqExport $fOrdExport$fShowExportIFace$fEqExportIFace$fOrdExportIFace $fShowPrimFn $fEqPrimFn $fOrdPrimFn$fGenericPrimFn$fShowFCallType $fEqFCallType$fOrdFCallType $fShowFType $fEqFType $fOrdFType $fShowLAlt' $fEqLAlt' $fOrdLAlt'$fFunctorLAlt' $fDataLAlt'$fEqLExp $fOrdLExp $fShowLOpt$fEqLOpt $fOrdLOpt $fShowLDecl $fEqLDecl $fOrdLDeclPrimp_namep_typep_arityp_defp_lexpp_total primitives inlineAllSProjSTestSCtorqualifyN specialCased specialCallPrimDecPrimFJsPrimTyPTBoolPTAnyprimDB jsPrimCoerce $fEqJsPrimTy $fOrdJsPrimTy HiddenClassjsNamejsNameGenerated jsNamePartialjsTailCallOptimNamejsNameHiddenClass dataPartName $fEqPartial $fOrdPartial$fEqHiddenClass$fOrdHiddenClassremoveDeadCode globlToCon $fDataLOpt $fDataLDecl $fDataLExp$fDataCaseType $fDataPrimFn $fDataLVar $fDataFDesc EvalApplyEvalCase ApplyCase Apply2CaseDDefsDDeclDFun DConstructorDAltDConCase DConstCase DDefaultCaseDExpDVDAppDLetDUpdateDProjDCDCaseDChkCaseDConstDForeignDOpDNothingDErrordefunctionalisegetFnaddAppseEVALtoConstoConsA mkApplyCasemkEvalmkApplymkApply2declaregenArgsmkFnCon mkUnderCon mkBigCasegroupsOf dumpDefuns $fShowDExp $fShowDAlt$fEqDAlt$fEqDExp $fShowDDecl $fEqDDeclSDeclSFunSAltSConCase SConstCase SDefaultCaseSVSAppSLetSUpdateSConSCaseSChkCaseSConstSForeignSOpSNothingSError simplifyDefs $fShowSAlt $fShowSDeclinlineinlevalD CodeGenerator CodegenInfo outputFile outputType targetTriple targetCPUincludes importDirs compileObjs compileLibs compilerFlags debugLevel simpleDecls defunDecls liftDecls interfaces exportDeclsttDecls OutputTypeObject ExecutableDbgLevelNONEDEBUGTRACE $fEqDbgLevel$fEqOutputType$fShowOutputType$fGenericOutputTypeLogCatIParseIElabICodeGenIErasure ICoverageIIBC Optimisation PETransform OutputFmt HTMLOutput LaTeXOutput HowMuchDocsFullDocs OverviewDocs ConsoleWidthInfinitelyWideColsWideAutomaticWidthIRFormat IBCFormat JSONFormat LanguageExt TypeProvidersErrorReflectionUniquenessTypes DSLNotationElabReflection FCReflection LinearTypesCodegenViaBytecodeREPLPort DontListen ListenPortFilenameQuietNoBanner ColourREPLIdemode IdemodeSocket IndentWith IndentClauseShowAllShowLibs ShowLibDir ShowDocDirShowIncsShowPkgsShowLoggingCats NoBasePkgs NoPrelude NoBuiltinsNoREPLOLoggingOLogCatsOutput InterfaceTypeCase TypeInType DefaultTotalDefaultPartial WarnPartial WarnReach AuditIPkg EvalTypes NoCoverageVerbosePort IBCSubDir ImportDir SourceDirPkgBuild PkgInstallPkgCleanPkgCheckPkgREPL PkgDocBuild PkgDocInstallPkgTestPkgIndexWarnOnlyPkgBCAsm DumpDefun DumpCases UseCodegen CodegenArgsOutputTy ExtensionInterpretScriptEvalExpr TargetTriple TargetCPUOptLevelAddOpt RemoveOptClient ShowOrigErr AutoWidth AutoSolveUseConsoleWidthDumpHighlights DesugarNatsNoOldTacticDeprecationWarnings AllowCapitalizedPatternVariables strLogCat codegenCats parserCatselabCatsloggingCatsStrgetFilegetBC getOutput getIBCSubDir getImportDir getSourceDir getPkgDirgetPkg getPkgClean getPkgREPL getPkgCheck getPkgMkDoc getPkgTest getCodegengetCodegenArgsgetConsoleWidth getExecScript getPkgIndex getEvalExpr getOutputTygetLanguageExt getOptLevelgetOptimisation getColour getClientgetPortopt $fEqREPLPort$fGenericREPLPort$fShowREPLPort$fShowLanguageExt$fEqLanguageExt$fReadLanguageExt$fOrdLanguageExt$fGenericLanguageExt$fShowIRFormat $fEqIRFormat$fGenericIRFormat $fShowCodegen $fEqCodegen$fGenericCodegen$fShowConsoleWidth$fEqConsoleWidth$fGenericConsoleWidth$fShowOptimisation$fEqOptimisation$fGenericOptimisation $fShowLogCat $fEqLogCat $fOrdLogCat$fGenericLogCat$fEqOpt $fGenericOptBCASSIGN ASSIGNCONSTUPDATEMKCONCASEPROJECT PROJECTINTO CONSTCASECALLTAILCALL FOREIGNCALLSLIDEREBASERESERVEADDTOPTOPBASEBASETOPSTOREOLDOPNULLERRORRegRValLTTmptoBCcleanbcisConstmoveRegassignconCase constCasecaseAltconstAlt defaultAlt $fShowReg$fEqReg$fShowBC writePortable$fToJSONAccessibility$fToJSONCaseInfo$fToJSONCaseAlt' $fToJSONSC'$fToJSONCaseDefs$fToJSONNameType$fToJSONImplicitInfo$fToJSONBinder$fToJSONAppStatus $fToJSONUExp $fToJSONTT $fToJSONDef$fToJSONMetaInformation$fToJSONTotality$fToJSONRigCount $fToJSONReg $fToJSONBC $fToJSONSAlt $fToJSONSExp $fToJSONSDecl $fToJSONDAlt $fToJSONDExp $fToJSONDDecl$fToJSONPrimFn $fToJSONIntTy$fToJSONArithTy $fToJSONConst $fToJSONLAlt'$fToJSONCaseType $fToJSONLVar $fToJSONLExp $fToJSONLOpt $fToJSONLDecl$fToJSONExport $fToJSONFDesc$fToJSONExportIFace $fToJSONName$fToJSONCodegenInfo$fToJSONCodegenFileinterMapindent serializeReg serializeCaseserializeDefault serializeBC serializedumpBCTacticAttackClaimClaimFnReorderExactFill MatchFillPrepFill CompleteFillRegretSolve StartUnifyEndUnifyUnifyAllCompute ComputeLetSimplify WHNF_ComputeWHNF_ComputeArgsEvalInCheckInIntroIntroTyForallLetBind ExpandLetRewriteEquivPatVarPatBindFocusDefer DeferTypeImplementationAutoArg SetInjectiveMoveLast MatchProblems UnifyProblems UnifyGoal UnifyTerms ProofStateUndoQEDPSthnameholesusednsnextnameglobal_nextnameptermptype dontunifyunified notunifieddottedsolvedproblems injectivedeferredimplementationsautospsnamespreviouscontext datatypesplogunifylogdonerecentswhile_elaborating constraint_nsnowElaboratingPSdoneElaboratingAppPSdoneElaboratingArgPSnewProof envAtFocus goalAtFocus dropGiven keepGiven getProvenance processTactic"$fPrettyProofStateOutputAnnotation$fShowProofState $fShowTacticElabElab' ElabStateESproof proofFailexplicit addPSname getPSnames saveState loadState getNameFrom setNextNameinitNextNameFrom transformErrerrAterunAuxerunrunElabexecElabinitElaborator elaborate updateAuxgetAuxunifyLog getUnifyLogprocessTactic'updatePSnow_elaboratingdone_elaborating_appdone_elaborating_argelaborating_app get_context set_context get_datatypes set_datatypesget_global_nextnameset_global_nextnameget_term update_termget_envget_inj get_holes get_usedns get_probs get_recentsis_guess get_guessget_type get_type_val get_deferredcheckInjectiveget_implementations get_autos unique_hole unique_hole'eloggetLogattackclaimclaimFn unifyGoal unifyTermsexactfill match_fill prep_fill complete_fillsolve start_unify end_unify unify_allregretcompute computeLet whnf_computewhnf_compute_argseval_incheck_inintrointroTyforallletbind expandLetrewriteequivpatvarpatvar'patbindfocusmovelastdotterm get_dottermzipHere matchProblems unifyProblemsdefer deferTypeimplementationArgautoArgsetinj proofstatereorder_claimsqedundo prepare_applyapply match_applyapply'apply2 apply_elab checkPiGoal simple_app infer_appdep_apparg no_errorstry handleErrortry'tryCatchtryWhentryAlltryAll' prunStateTdebugElaboratorqshow dumpprobs$fShowElabState SyntaxInfoSynusing syn_params syn_namespaceno_imp imp_methods decoration inPatternimplicitAllowedconstraintAllowedmaxline mut_nestingdsl_infosyn_in_quasiquote syn_toplevelwithAppAllowedUsing UImplicit SyntaxRulessyntaxRulesListSSymbolKeywordSymbolBindingExpr SimpleExprSyntaxRuleDeclRule SynContext PatternSyntax TermSyntax AnySyntaxDSLDSL'dsl_bind dsl_applydsl_puredsl_var index_first index_next dsl_lambdadsl_letdsl_piOptInfoOptimise inaccessible detaggable forceableFnInfo fn_paramsTIData TIPartial TISolution RecordInfoRIrecord_parametersrecord_constructorrecord_projections InterfaceInfoCIimplementationCtorNameinterface_methodsinterface_defaults"interface_default_super_interfacesinterface_impparamsinterface_paramsinterface_constraintsinterface_implementationsinterface_determinersPArgArgOpt AlwaysShow HideDisplayInaccessibleArg UnknownImpPArg'PImpPExp PConstraint PTacImplicitpriority machine_infargoptspnamegetTm getScriptPDoPDo'DoExpDoBindDoBindPDoLetDoLetP DoRewritePTacticPTactic'IntrosRefineDoUnifyUnfocus MatchRefineLetTacLetTacTyTrivialTCImplementationTryTSeq ApplyTactic ByReflectionReflectGoalTypeTCheckTEvalTDocStrTSearchSkipTFailQedAbandonSourceFCPAltType ExactlyOne FirstSuccess TryImplicitPTermPQuotePRef PInferRefPPatvarPLamPPiPLetPTypedPAppPWithAppPAppImplPAppBind PMatchApp PIfThenElsePCasePTrue PResolveTCPRewritePPairPDPairPAs PAlternativePHiddenPType PUniversePGoal PConstant PlaceholderPDoBlockPIdiomPMetavarPProofPTactics PElabError PImpossiblePCoercedPDisamb PUnifyLog PNoImplicits PQuasiquotePUnquote PQuoteNamePRunElab PConstSugarPunInfoIsTypeIsTerm TypeOrTermPClausePDataPDeclPData' PDatadecl PLaterdecld_name d_name_fcd_tconPClause'PWithPClauseRPWithRElabDEState case_decls delayed_elab new_tyDecls highlighting auto_bindsimplicit_warningsRDeclInstructions RTyDeclInstrsRClausesInstrsRAddImplementationRDatatypeDeclInstrsRDatatypeDefnInstrs DirectiveDLibDLinkDFlagDIncludeDHideDFreezeDThaw DInjective DSetTotalDAccessDDefaultDLogging DDynamicLibs DNameHintDErrorHandlers DLanguage DDeprecateDFragileDAutoImplicitsDUsedPDecl'PFixPTy PPostulatePClausesPCAFPParamsPOpenInterfaces PNamespacePRecord PInterfacePImplementationPDSLPSyntaxPMutual PDirective PProvider PTransform PRunElabDecl ProvideWhat ProvideWhat'ProvTerm ProvPostulateFnOptsFnOpt InlinableTotalFn PartialFn CoveringFn AllGuarded AssertTotal DictionaryOverlappingDictionaryImplicit NoImplicitCExport ErrorHandler ErrorReverse ErrorReduce Reflection Specialise ConstructorAutoHint PEGeneratedStaticFnPlicityImpExp ConstraintTacImppargoptspstaticpparampscoped pinsourcepcountpscriptStaticDynamicFixDeclFixFixityInfixlInfixrInfixNPrefixNprec ElabShellCmdEQEDEAbandonEUndo EProofState EProofTermEEvalECheckESearchEDocStrIdrisIBCWriteIBCFixIBCImp IBCStatic IBCInterface IBCRecordIBCImplementationIBCDSLIBCDataIBCOpt IBCMetavar IBCSyntax IBCKeyword IBCImport IBCImportDir IBCSourceDirIBCObjIBCLib IBCCGFlagIBCDyLib IBCHeader IBCAccessIBCMetaInformationIBCTotal IBCInjectiveIBCFlags IBCFnInfoIBCTrans IBCErrRev IBCErrReduceIBCCGIBCDoc IBCCoercionIBCDef IBCNameHint IBCLineAppIBCErrorHandlerIBCFunctionErrorHandler IBCPostulate IBCExternIBCTotCheckErrIBCParsedRegion IBCModDocsIBCUsage IBCExport IBCAutoHint IBCDeprecate IBCFragile IBCConstraintCGInfocallsallCallsscgusedpos UsageReasonSCGEntry SizeChangeSmallerSameBiggerUnknownIStatett_ctxtidris_constraints idris_infixesidris_implicits idris_staticsidris_interfacesidris_openimpls idris_records idris_dslsidris_optimisationidris_datatypesidris_namehints idris_patdefs idris_flagsidris_callgraphidris_docstringsidris_moduledocsidris_tyinfodata idris_fninfoidris_transformsidris_autohintsidris_totcheckidris_defertotcheckidris_totcheckfail idris_options idris_nameidris_lineappsidris_metavarsidris_coercions idris_errRevidris_errReduce syntax_rulessyntax_keywordsimported idris_scprims idris_objs idris_libs idris_cgflags idris_hdrsidris_imported proof_listerrSpanparserWarnings lastParse indent_stack brace_stackidris_parsedSpan hide_listdefault_access default_total ibc_write compiled_soidris_dynamic_libsidris_language_extensionsidris_outputmodeidris_colourReplidris_colourThemeidris_errorhandlers idris_nameIdxidris_function_errorhandlersmodule_aliasesidris_consolewidthidris_postulates idris_externsidris_erasureUsedidris_repl_defs elab_stack idris_symbols idris_exportsidris_highlightedRegionsidris_parserHighlightsidris_deprecatedidris_inmodule idris_ttstats idris_fragileidris_interactiveOptsInteractiveOptsinteractiveOpts_indentWithinteractiveOpts_indentClauseDefaultTotalityDefaultCheckingTotalDefaultCheckingPartialDefaultCheckingCovering OutputMode RawOutputIdeModePPOption ppopt_implppopt_desugarnats ppopt_pinames ppopt_depthppopt_displayrigIOption opt_logLevel opt_logcats opt_typecaseopt_typeintype opt_coverage opt_showimpopt_errContextopt_repl opt_verbose opt_nobanner opt_quiet opt_codegen opt_outputTy opt_ibcsubdiropt_importdirsopt_sourcedirs opt_tripleopt_cpu opt_cmdline opt_origerr opt_autoSolveopt_autoImport opt_optimiseopt_printdepth opt_evaltypesopt_desugarnats opt_autoimplsElabInfoEInfoparamsinblockliftname namespaceelabFC constraintNSpe_depth noCaseLift rhs_trans rec_elabDeclElabWhatETypesEDefnsEAlltoplevel toplevelWith eInfoNames defaultOptsdefaultOptimisedefaultPPOptionverbosePPOptionppOption ppOptionIstprimDefsinitialInteractiveOpts idrisInit catchError throwError is_scopedimplimpl_gen forall_impforall_constraintexpl expl_param expl_linear constrainttacimpl inlinable dictionary initEStatehighlightSource mapPDataFC mapPDeclFCdeclared tldeclareddefinedupdateNupdateNs mapPTermFCmapPTpimppexppconstptacimp highestFC syntaxNames syntaxSymbolsemptySyntaxRulesupdateSyntaxRulesinitDSL defaultSyntaxexpandNSbiprimfcinferTyinferCon inferDecl inferOptsinfTerminfP getInferTerm getInferType primNamesunitTyunitConfalseDocfalseTypairTypairConupairTyupairConeqTyeqConeqDoceqDecl eqParamDoceqOpts modDocNamesigmaTysigmaConpiBindpiBindpannotationColourconsoleDecorateisPostulateName prettyImp prettyIst pprintPTermbasename isHoleName containsHole prettyNameshowCImpshowDImp showDecls showDeclImpgetImpsgetExps getShowArgs getConstsgetAllshowNameshowTm showTmImpls showTmOpts getPArity allNamesIn boundNamesInimplicitNamesInnamesIn usedNamesIngetErasureInfo $fShowFixity $fOrdFixDecl $fShowFixDecl$fSizedPTactic' $fSizedPDo' $fSizedPArg' $fSizedPTerm$fPrettyPTermOutputAnnotation $fShowPTerm $fShowPData' $fShowPDecl' $fShowIState$fShowPClause'$fShowElabWhat $fEqElabWhat $fShowIOption $fEqIOption$fGenericIOption$fShowPPOption$fShowOutputMode$fShowDefaultTotality$fEqDefaultTotality$fGenericDefaultTotality$fShowInteractiveOpts$fGenericInteractiveOpts$fShowSizeChange$fEqSizeChange$fGenericSizeChange $fShowCGInfo$fGenericCGInfo $fEqFixity$fGenericFixity $fEqFixDecl$fGenericFixDecl $fShowStatic $fEqStatic $fOrdStatic $fDataStatic$fGenericStatic $fShowFnOpt $fEqFnOpt$fGenericFnOpt$fShowProvideWhat'$fEqProvideWhat'$fFunctorProvideWhat'$fGenericProvideWhat'$fGenericDirective $fEqPunInfo $fShowPunInfo $fOrdPunInfo $fDataPunInfo$fGenericPunInfo $fEqPAltType $fOrdPAltType$fDataPAltType$fGenericPAltType$fShowPTactic' $fEqPTactic' $fOrdPTactic'$fFunctorPTactic'$fFoldablePTactic'$fTraversablePTactic'$fDataPTactic'$fGenericPTactic'$fEqPDo' $fOrdPDo' $fFunctorPDo' $fDataPDo' $fGenericPDo' $fShowArgOpt $fEqArgOpt $fOrdArgOpt $fDataArgOpt$fGenericArgOpt $fShowPArg' $fEqPArg' $fOrdPArg'$fFunctorPArg' $fDataPArg'$fGenericPArg' $fEqPTerm $fOrdPTerm $fDataPTerm$fGenericPTerm $fShowPlicity $fEqPlicity $fOrdPlicity $fDataPlicity$fGenericPlicity$fFunctorPData'$fGenericPData'$fShowElabShellCmd$fEqElabShellCmd$fShowRecordInfo$fGenericRecordInfo $fShowTIData$fGenericTIData $fShowFnInfo$fGenericFnInfo $fShowOptInfo$fGenericOptInfo $fShowDSL' $fFunctorDSL' $fGenericDSL'$fShowSynContext$fGenericSynContext $fShowSSymbol $fEqSSymbol$fGenericSSymbol $fShowUsing $fEqUsing $fDataUsing$fGenericUsing$fShowSyntaxInfo$fGenericSyntaxInfo$fFunctorPDecl'$fGenericPDecl' $fShowSyntax$fGenericSyntax$fFunctorPClause'$fGenericPClause'$fGenericSyntaxRules$fShowIBCWrite$fGenericIBCWrite$fShowInterfaceInfo$fGenericInterfaceInfo$fGenericIState$fNFDataInteractiveOpts$fNFDataIState$fNFDataDefaultTotality$fNFDataSyntaxInfo $fNFDataUsing$fNFDataSSymbol$fNFDataSyntax$fNFDataSynContext $fNFDataDSL'$fNFDataTypeInfo$fNFDataOptInfo$fNFDataRecordInfo$fNFDataInterfaceInfo $fNFDataPArg' $fNFDataPDo'$fNFDataPTactic'$fNFDataPAltType $fNFDataPTerm$fNFDataPData'$fNFDataPClause'$fNFDataPunInfo$fNFDataProvideWhat'$fNFDataPDecl'$fNFDataDirective$fNFDataDataOpt $fNFDataFnOpt$fNFDataPlicity$fNFDataArgOpt$fNFDataStatic$fNFDataFixDecl$fNFDataFixity$fNFDataCGInfo$fNFDataLogCat$fNFDataIRFormat$fNFDataCodegen$fNFDataFnInfo$fNFDataSizeChange$fNFDataDocTerm$fNFDataInline $fNFDataBlock$fNFDataIBCWrite$fNFDataOutputType$fNFDataColourTheme$fNFDataOptimisation$fNFDataLanguageExt$fNFDataIOption$fNFDataTIData$fNFDataREPLPort $fNFDataOpt$fNFDataSyntaxRules$fNFDataPrimFn$fNFDataConsoleWidth$fNFDataDocstring$fNFDataOutputMode$fNFDataPortNumber$fNFDataIdrisColour$fNFDataDynamicLibField fgetState fputState fmodifyState ctxt_lookupist_optimisationopt_inaccessibleopt_detaggable opt_forceable ist_callgraph cg_usedposopts_idrisCmdline known_termsknown_interfacesrepl_definitionsidris_fixities$fCategoryTYPEFieldgetScreenWidthcatchIO isWindowsisDarwintempfile readSourcereadSourceStrict writeSourcewriteSourceTextisATTY withTempdirrmFilesetupBundledCC EitherErrLeftErrRightOK getContext forCodegengetObjectFiles addObjectFilegetLibsaddLibgetFlagsaddFlagaddDyLibgetAutoImports addAutoImportaddDefinedNamegetDefinedNamesaddTTdumpTTaddHdr addImported addLangExt dropLangExtaddTrans addErrRev addErrReduceaddErasureUsage addExport addUsedNamegetErasureUsage getExportstotcheckdefer_totcheckclear_totchecksetFlagsaddFnOpt setFnInfosetAccessibilitygetFromHideList setTotalitysetInjectivity getTotalitygetCoercionsToaddToCGaddCalls addTyInferredaddTyInfConstraints isTyInferredaddFunctionErrorHandlers getAllNames getCGAllNames addCGAllNamesallNames addCoercion addDocStr addNameHint getNameHints addDeprecated getDeprecated addFragile getFragile push_estack pop_estackaddImplementation addOpenImpl setOpenImpl getOpenImpl addInterfaceupdateIMethods addRecord addAutoHint getAutoHintsaddIBCclearIBC resetNameIdx addNameIdx addNameIdx' getSymbolgetHdrs getImported setErrSpanclearErrgetSOsetSO getIState putIState updateIState withContext withContext_runIOgetNameaddInternalAppgetInternalApp clearOrigPats clearPTypescheckUndefined isUndefined setContext updateContextaddConstraints addDeferredaddDeferredTyCon addDeferred' solveDeferred getUndefined isMetavarNamegetWidthsetWidthsetDepthtypeDescriptiontype1Doc isetPromptisetLoadedRegion setLogLevel setLogCats setCmdLine getCmdLinegetDumpHighlighting getDumpDefun getDumpCaseslogLevel setAutoImpls getAutoImpls setErrContext errContext getOptimise setOptimise addOptimiseremoveOptimise setOptLeveluseREPLsetREPL showOrigErrsetShowOrigErr setAutoSolve setNoBanner getNoBanner setEvalTypesgetDesugarNatssetDesugarNatssetQuietgetQuiet setCodegencodegen setOutputTyoutputTy setIdeModesetTargetTriple setTargetCPUverbose setVerboseiReport typeInType setTypeInTypecoverage setCoverage setIBCSubDir valIBCSubDir addImportDir setImportDirs allImportDirsrankedImportDirs addSourceDir setSourceDirs allSourceDirs setColouriseimpShow setImpShow setColourlogLvl logCoverage logErasure logParserlogElab logCodeGenlogIBC logLvlCats cmdOptTypenoErrors setTypeCase getIndentWith setIndentWithgetIndentClausesetIndentClause expandParams expandParamsDmapsndexpandImplementationScope getPriority addStatics addToUsingaddUsingConstraints addUsingImplsgetUnboundImplicitsimplicit implicit' implicitise addImplPat addImplBoundaddImplBoundInfaddImpladdImpl'aiFnimpInexpArg stripLinearstripUnmatchablemkPApp findStaticstoEither matchClause matchClause' substMatches substMatchsubstMatchShadowsubstMatchesShadowshadow mkUniqueNames$fMonadEitherErr$fApplicativeEitherErr$fFunctorEitherErrwhoCallscallsWho transformPatstransformPatsWithapplyTransRulesapplyTransRulesWithnamespacesInNS namesInNS inlineDef inlineTerm errReverseextractUnquotes desugarAsbugaddrresugar delabSugareddelab delabWithEnvdelabMV delabDirectdelabTydelab'delabTy' pprintDelab pprintNoDelab pprintDelabTy pprintErrannName fancifyAnnotsRFunDefn RDefineFun RFunClause RMkFunClauseRMkImpossibleClause RDataDefnRDefineDatatypeRConstructorDefn RConstructorRTyDeclRDeclareRFunArgargNameargTy argPlicityerasure rFunArgToPArgreflmtacNreify reifyBool reifyListreifyReportPartsreifyTTreifyRaw reifyTTNamereflect reflectRaw reflectFixityreflectTTQuotePatternreflectRawQuotePatternreflectTTQuotereflectRawQuotereflectNameType reflectNamemkList reflectEnvreifyEnvrawList rawPairTyrawPair reflectErr reflectFC fromTTMaybereifyReportPart reifyTyDecl reifyFunDefnreifyRDataDefn envTupleType reflectListgetArgs buildFunDefnsbuildDatatypes reflectArgreflectDatatypereflectFunDefn$fShowRErasure$fShowRPlicity $fShowRFunArg $fShowRTyDecl$fShowRTyConArg$fShowRCtorArg$fShowRDatatype$fShowRFunClause$fShowRFunDefntrivial trivialHoles proofSearch resolveTCpe_apppe_def pe_clauses pe_simple PEArgType ImplicitS ImplicitD ConstraintS ConstraintD ExplicitS ExplicitDUnifiedD partial_evalspecType mkPE_TyDecl mkPE_TermDecl getSpecApps $fEqPEArgType$fShowPEArgTypeMessage messageExtent messageText messageSource OutputDocpshow formatMessageiWarn emitWarningiRenderiPrintTermWithTypeiPrintFunTypes iRenderOutput iRenderResult iRenderError iPrintResult iPrintError iputStrLniputStridemodePutSExpiputGoal warnTotalityprintUndefinedNamesprettyDocumentedIstsendParserHighlightingsendHighlightingwriteHighlightsclearHighlightsrenderExternal$fMonadExceptionExceptT$fMessageSimpleWarningMark ParseErrorParsingParser runparser prettyErrormarkrestoregetFC addExtent trackExtentextent appExtent$fMessageParseError IdrisParser parseErrorDoc someSpacetoken highlightkeywordclearParserWarningsreportParserWarnings parserWarningisEoleol docComment whiteSpace stringLiteral charLiteralnaturalfloatcharstringlcharsymbolreserved identifieriName maybeWithNSname packageNamebindListcommaSeparated pushIndent popIndentindented indentedBlockindentedBlock1indentedBlockSlookAheadMatches openBlock closeBlock terminator notEndApp notEndBlockindentGt notOpenBraces accessibilityaddAccaccData fixErrorMsgtablebacktickOperator operatorName operatorFrontfnNamefixitycheckDeclFixitycheckNameFixity fixityTypeopCharsoperatorLettercommentMarkersinvalidOperatorssymbolicOperator reservedOpiucheckshowErrreport idrisCatch setAndReportifailierrortclifttcliftAttctry getErrSpan warnDisambcheckAllCoveringcheckIfGuarded checkPositivecheckDeclTotalityverifyTotalitybuildSCGcheckSizeChange$fShowGuardednessProvidedProvide providerTy getProvided$fShowProvided $fEqProvided$fFunctorProvidedPkgName IFileTypeIDRLIDRIBC unPkgNameunInitializedPkgNamepkgNamepkgIndexibcPathNoFallback findImportfindIBC findInPath findPkgIndexinstalledPackages $fEqIFileType $fEqPkgName $fShowPkgName$fShowIFileType$fOrdIFileTypeCommandQuitHelpEvalNewDefnUndefineCheckCoreDocStrTotCheckReloadWatchLoadRunShellCommandChangeDirectory ModImportEditCompileExecuteExecValMetavarsProveAddProofRmProof ShowProofProofs UniversesLogLvl LogCategory VerbositySpecWHNF TestInlineDefnMissing DynamicLink ListDynamicPattelabSearch CaseSplitAt AddClauseFromAddProofClauseFromMakeWithMakeCase DoProofSearchUnsetOptNOP SetColourColourOn ColourOffListErrorHandlersSetConsoleWidthSetPrinterDepthBrowseMakeDoc ShowVersionWarrantyPPrint TransformInfo DebugInfo DebugUnifyPkgDescpkgnamepkgdepspkgbrief pkgversion pkgreadme pkglicense pkgauthor pkgmaintainer pkghomepage pkgsourceloc pkgbugtrackerlibdepsobjsmakefile idris_opts sourcedirmodules idris_mainexecout idris_tests defaultPkg $fShowPkgDescdirectiveActionIBCPhase IBC_BuildingIBC_REPLhasValidIBCVersionloadIBC loadPkgIndexwriteIBC writePkgIndex$fBinaryIRFormat$fBinaryCodegen$fBinarySSymbol $fBinaryDSL'$fBinarySyntax$fBinarySynContext$fBinaryTypeInfo$fBinaryFnInfo$fBinaryOptInfo$fBinaryRecordInfo$fBinaryInterfaceInfo $fBinaryPArg' $fBinaryPDo'$fBinaryPTactic'$fBinaryPAltType $fBinaryPTerm$fBinaryPunInfo$fBinaryPData'$fBinaryPClause'$fBinarySyntaxInfo $fBinaryUsing$fBinaryProvideWhat'$fBinaryPDecl'$fBinaryDirective$fBinaryLanguageExt$fBinaryDefaultTotality$fBinaryPlicity$fBinaryStatic$fBinaryArgOpt$fBinaryFixDecl$fBinaryFixity $fBinaryFnOpt$fBinaryDataOpt$fBinaryMetaInformation$fBinaryTotality$fBinaryPReason$fBinaryAccessibility $fBinaryDef$fBinaryCaseInfo$fBinaryCaseDefs$fBinaryCaseAlt' $fBinarySC'$fBinaryCaseType$fBinaryCGInfo$fBinarySizeChange$fBinaryNumWrapper$fBinaryCodeAttr$fBinaryListType$fBinaryInline $fBinaryBlock$fBinaryDocTerm$fBinaryOptions$fBinaryDocstring$fShowIBCPhase $fEqIBCPhase $fShowIBCFileperformUsageAnalysis mkFieldName $fShowArg$fEqArg$fOrdArg $fShowVarInforecheckCrecheckC_borrowingcheckDeprecated checkFragileiderrcheckDef checkAddDefinaccessibleImpsinaccessibleArgs elabCaseBlock checkInferred inferredDiff checkDocs decorateidpbindspbtygetPBtyspsolvepvarsgetFixedInType getFlexInTypegetParamsInTypegetTCinjgetTCParamsInType paramNames getLinearUsed getUniqueUsedgetStaticNames getStaticsmkStatic mkStaticTycheckVisibility findParams setDetaggabledisplayWarningspropagateParams orderPatsliftPatsisEmpty hasEmptyPat findLinear setLinear linearArg pruneByType isPlausible elabRewriteelabRewriteLemma$fShowParamInfoDocsDocs'FunDocDataDoc InterfaceDoc RecordDocNamedImplementationDocModDocFunDoc'FD pprintDocsgetDocspprintConstDocs pprintTypeDoc$fFunctorFunDoc'$fFunctorDocs' generateDocs applyOpts$fOptimisableTT$fOptimisableBinder$fOptimisableBinder0$fOptimisableRaw$fOptimisableEither$fOptimisable[]$fOptimisable(,,)$fOptimisable(,) debindAppdesugar TacticArgNameTArgExprTArgAltsTArg StringLitTArg SetOrUpdateFieldSet FieldUpdateSynMatchSynTmSynBindallowImp disallowImp scopedImp allowConstrfullExpr tryFullExprexpropExprexpr' externalExprsimpleExternalExpr extensions extensionupdateSynMatch internalExpr impossiblecaseExpr caseOptionwarnTacticDeprecation proofExpr tacticsExpr simpleExpr bracketed bracketed' dependentPair bracketedExpr modifyConstalt hsimpleExprdisamb noImplicitsapp implicitArg constraintArg quasiquoteunquote namequote recordTypemkTypetypeExprlambda rewriteTermrigCountlet_ let_bindingif_ quoteGoal bindsymbol explicitPi autoImplicitdefaultImplicitnormalImplicit constraintPi implicitPi unboundPiunboundPiNoConstraintpipiOptsconstraintListconstraintList1 typeDeclList tyOptDeclListlistExprdoBlockdo_do_altidiom constantsconstantverbatimStringLiteralstatictacticstactic fullTactic$fShowSynMatchrecordrecordParameterdataIrecordIdataOptsdata_ constructorsimpleConstructordslcheckDSLoverloadmkPatTm genClausesvalidCoverageCaserecoverableCoverageElabCtxte_inarge_isfn e_guardede_intypee_qq e_nomatching ElabResult resultTermresultMetavarsresultCaseDecls resultContext resultTyDeclsresultHighlighting resultNameElabModeETyDecl ETransLHSELHS EImpossibleERHSbuildbuildTCgetUnmatchable initElabCtxtgoal_polymorphicelabpruneAlt findHighlight solveAuto solveAutos tcRecoverabletrivial' trivialHoles' proofSearch' resolveTC'collectDeferred metavarName runElabActionrunTacelaboratingArgErrwithErrorReflectionsolveAllprocessTacticDecls $fEqElabMode elabValBindelabVal elabDocTermselabExecelabREPL buildTypeelabType elabType' elabPostulate elabExtern searchByType searchPreddefaultScoreFunction$fMonoidAsymMods$fSemigroupAsymMods $fMonoidSided$fSemigroupSided $fMonoidScore$fSemigroupScore $fOrdScore $fEqAsymMods$fShowAsymMods $fEqSided $fShowSided $fEqScore $fShowScore $fShowStateelabData elabRecord elabInterface $fShowMArgTy elabTransform elabRunElabelabImplementation elabClauses forceWithelabPE checkPossiblecheckPossibles findUnique elabClausemapRHS mapRHSdeclexecute elabProviderrecinfoelabMain elabPrims elabDeclselabDecl elabDecl' ImportInfoimport_reexport import_path import_renameimport_namespaceimport_locationimport_modname_location moduleNamedecl addReplSyntax parseExpr parseConst parseTacticparseElabShellStep parseImports fixColour loadModule loadFromIFileparseCmd setOptionshelpallHelpreplCompletionproverCompletion$fEqCompletionModeprover showProof showRunElab ModuleTreeMTreemod_pathmod_needsRecheckmod_timemod_depsgetModuleFiles getImports buildTree$fShowModuleTree splitOnLine replaceSplitsgetUniqnameRoot getClausegetProofClausemkWith nameMissing caseSplitAt addClauseFromaddProofClauseFrom addMissingmakeWithmakeCase doProofSearch makeLemmaaproposaproposModules $fApropos[]$fAproposMaybe $fApropos(,)$fAproposDocstring$fAproposConst $fAproposTT$fAproposBinder $fAproposDef $fAproposName findExports getExpNamesCGConfheaderfooterjsbnPath extraRunTimeCGStats usedBigIntpartialApplications hiddenClasses codegenJs$fMonoidCGStats$fSemigroupCGStatsJSTargetNode JavaScriptcodegenJavaScript codegenNode $fEqJSTargetcodegenCcompilegenerategetIdrisFlagsLibgetIdrisFlagsIncgetIdrisFlagsEnv getIdrisCCgetIdrisVersiongetIdrisVersionNoGitgetIdrisUserDataDirgetIdrisInitScriptgetIdrisHistoryFilegetIdrisInstalledPackagesgetIdrisLoggingCategories defaultPort loadInputsbannerwarrantyrepl startServer runClient idemodeStartproofsprocess replSettingsrunMain idrisMainidrisshowIdrisCRTSDirshowExitIdrisCRTSDirshowIdrisJSRTSDirshowExitIdrisJSRTSDirshowIdrisFlagsLibsshowExitIdrisFlagsLibsshowIdrisDataDirshowExitIdrisDataDirshowIdrisLibDirshowExitIdrisLibDirshowIdrisDocDirshowExitIdrisDocDirshowIdrisFlagsIncshowExitIdrisFlagsIncshowIdrisInstalledPackagesshowExitIdrisInstalledPackagesshowIdrisLoggingCategoriesshowExitIdrisLoggingCategories showIdrisInfoshowExitIdrisInfo runArgParserexecArgParserPure pureArgParserPParser parseDescpPkgpPkgNamefilename textUntilEolclausecommaSeppOptionspClause getPkgDescbuildPkgcheckPkgreplPkgcleanPkg documentPkgtestPkg installPkg auditPackage buildModstestLibrmIBCrmIdxrmExe toIBCFile installIBC installIdx installObjmkDirCmdinPkgDir makeTargetmake mergeOptions extraLibDirsmkSGRcolouriseWithSTX getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameoverrideIdrisSubDirWithhasBundledToolchaingetToolchainDirlistenOnLocalhostlistenOnLocalhostAnyPort0annotated-wl-pprint-0.7.0-5EJhaPPvnKODWMqVOHKqvI!Text.PrettyPrint.Annotated.LeijenhPutDocputDocdisplayDecoratedAdisplayDecorated displaySpans displayIOdisplaySdisplay renderCompact renderPretty noAnnotateannotategroupnestingcolumnnest linebreaklinetextemptyalignhangwidth fillBreakrationaldoubleintegerintboolpipeequals backslashdotspacecommacolonsemidquotesquoterbracketlbracketrbracelbraceranglelanglerparenlparenenclosebracketsanglesparensbracesdquotessquotes softbreaksoftline<$$><$><+><>vcathcatfillCatcatvsephsepfillSepsep punctuate encloseSep semiBracestupledlistDocSpanList SimpleDocSEmptySCharSTextSLine SAnnotStart SAnnotStopPrettyprettySizedsize nestingSizeWkEnvTT weakenEnv weakenTmEnvvarsInpruneevalWDConWTConWPRef StackEntry cantUnify BinderPathTermPath replaceTop rebuildTerm rebuildBinderfindHolehole updateEnvupdateSolvedPathdoInlineghc-prim GHC.Classesmax bindExprsbindExprisMinTTY GHC.TypesTrueFalsereplaceUnderscore errorIndent renameMNsreflCallreflectNameQuotePatternrawBool rawTripleTyfindImplementationsPEDeclinterfaceConstraintconcreteInterface mkNewPatsconsoleDisplayAnnotatedideModeReturnAnnotatedsimpleWhiteSpacesingleLineCommentmultiLineComment initsEndAtmkName lastIndentkeepTerminatoraccessibility'baseGHC.Base. calcTotalitydoesFileExist'doesDirectoryExist' processAccessVarInfoviDepsviFunArgviMethodCondDepSetUseMap minimalUsage forwardChain buildDepMaphowMuchNsDictNsInfo FullDocstringNsItemNsNameFailableerrtoNsNamegetNs rootNsStr nsName2Str fetchInfo removeOrphans filterName filterIncludetraceNss referredNssnsDict getAccess mayHaveDocsloadDocsextractPTermNamesextract extractPArg extractPDoextractPTactic createDocs createIndex createNsDoc genRelNsPath genTypeHeader createFunDoccreateOtherDocwrappernbspexistingNamespacescopyDependenciesapplyDataOptRTvar mtl-2.2.2Control.Monad.State.Classstate Data.OldList\\ integer-gmpGHC.Integer.TypeIntegerIntCharDoubleStringStateargsAndInterfacesscore usedNames InterfacesArgsDAGScore transposition equalityFlipsasymModsSidedAsymMods searchUsing reverseDag computeDagPusedVars deleteFromDagbothscoreCriterionsubsetsmatchTypesBulkelabProjection elabUpdatein_nameasArgrecName asPRefArgelabRecordFunctions memberDocs expandMethNSfindDetsimpBind addParamscheckInjectiveDefimport_progdecl' syntaxDecl addSyntax syntaxRulepattern syntaxSymfnDeclfnDecl'fnOptsfnOpt postulateusing_ openInterfacemutualimplementationBlockinterfaceBlock interface_implementation docstring usingDeclList usingDeclcafargExprrhswExpr whereBlockcodegen_ directivetotalityprovider transform runElabDecl parseProgcollect loadModule' loadSource' loadSourceaddHidesnames completeCmdrunWithInterruptextractFileNamesplit mergePat' doCodegen codegenC'gitHashrunIdeModeCommandideModeForceTermImplicitsmkPromptlit execScript initScript