xFo      !"#$%&'()*+,-./012 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I JKLMNOPQRSTUVWXYZ[\]^_`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{|}~****+++++,,,,,,-------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-0-1-2-3-4.5.6.7.8.9.:.;.<.=.>.?/@/A/B/C/D/E/F/G/H/I/J/K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0{0|0}0~0000000000000000000000000000000111111112222222222222222222222222222222223333333333334555555555555555555556666666666777899999999999999 9 9 9 9 9999999999999999999 9!9"9#:$:%:&;';(;);*<+<,<-<.</<0<1<2=3>4?5?6?7?8?9?:?;?<@=@>A?A@AAABACBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB[B\C]C^D_E`EaEbEcEdEeEfFgFhGiHjIkIlImInIoIpIqIrIsItIuIvJwJxJyKzK{L|L}L~LLLMMMMMNNNOOOOOOOOOPQQQQQQQQQQQQQQQQRRSSSSSTUVWXXYYYZZZZZZZ[[\]]]]]]]]^^^^^^^^^^^^^^^^^^^^^_NoneGNoneG"#$%&'()*+, "#$%&'()*+, "#$%&'()*,+"#$%&'()*+,NoneG1Decide whether to add a tick to a binding or not. A let body is treated differently from addTickLHsExprEvalInner above with TickForBreakPoints, because for breakpoints we always want to tick the body, even if it is not a redex. See test break012. This gives the user the opportunity to inspect the values of the let-bound variables.Tickishs that only make sense when their source code location refers to the current file. This might not always be true due to LINE pragmas in the code - which would confuse at least HPC.x     0 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW1XYZ[\0101[      0 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW1XYZ[\ NoneG2222 NoneG345345345345 SafeG6 Powerset 6789:;6789:;6789:;6789:; SafeG<=>?@AB<=>?@AB<=>?@AB<=>?@AB SafeG ]C^_`abDEFGHICDEFGHICDEFGIH ]C^_`abDEFGHINone+0G"Nsource files to checkO%path to directory for including specsPnew liquid-fixpoint sort checkQBcheck subset of binders modified (+ dependencies) since last checkR1uninterpreted integer multiplication and divisionS)allow higher order binders into the logicT'check all binders (overrides diffcheck)Usave fixpoint queryVset of binders to checkWIwhether to complain about specifications for unexported and unused valuesXdisable termination checkY*automatically construct proofs from axiomsZ*disable warnings output (only show errors)[%type all internal variables with true\disable case expand]enable strata analysis^disable truing top level types_check totality in definitions`%disable prunning unsorted Refinementsa)number of cores used to solve constraintsbMinimum size of a partitionc2Maximum size of a partition. Overrides minPartSizedAthe maximum number of parameters to accept when mining qualifierseBname of smtsolver to use [default: try z3, cvc4, mathsat in order]f0drop module qualifers from pretty-printed names.g)don't show subtyping errors and contexts.hIfind and use .cabal file to include paths to sources for imported modulesi#command-line options to pass to GHCj..c files to compile and link against (for GHC)lport at which lhi should listenm<Automatically generate singleton types for data constructorsn.scrape qualifiers from imported specificationso4scrape qualifiers from used, imported specificationspprint eliminate stats+JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqcde(JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq(LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopJKqJKL$MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqcdeSafeGr6Gross hack, to force dependency and loading of module.rrrrNoneGssssNone3GtArgExpr provides for each sort s | a list of expressions of sort s | and the list of constroctors that can create an expression of sort s.@tuvwxyz{|}~;tuvwxyz{|}~@yz{|}~tuvwxtuvwxy z{|}~NoneGNoneGNoneFG!!!!Safe+0GffNoneFG0      !"#$%&'(0      !"#$%&'(0      !"#$%&'(0      !"#$%&'(None +-0345FG))KSimple unstructured type for panic ----------------------------------------*KGeneric Type for Error Messages -------------------------------------------:INVARIANT : all Error constructors should have a pos field+liquid type error,haskell type location1liquid type error2condition failure error5specification parse error7sort error in specification:sort error in specification<#multiple alias with same name error?$multiple specs for same binder error@(multiple definitions of the same measureBbad data type specification (?)C*refined datacon mismatches haskell dataconDInvariant sort errorFUsing sort errorGIncompatible using errorJMeasure sort errorLHaskell bad Measure errorMUnbound symbol in specificationN#GHC error: parsing or type checkingO)Mismatch between Liquid and Haskell typesRlq type locationS7Mismatch in expected/actual args of abstract refinementX%Cyclic Refined Type Alias DefinitionsZ5Illegal RTAlias application (from BSort, eg. in PVar)`9Previously saved error, that carries over after DiffCheckaTermination Errorc!Refined Class/Interfaces ConflictfNon well sorted Qualifierh Sigh. Other.iDifferent kinds of Check  Obligations% ------------------------------------j"Obligation that proves terminationk!Obligation that proves invariantsl,Obligation that proves subtyping constraintsmKContext information for Error Messages ------------------------------------r'Construct and show an Error, then crashs'Construct and show an Error, then crasht'Construct and show an Error, then crashuConstruct and show an Error with an optional SrcSpan, then crash This function should be used to mark unimplemented functionalityvConstruct and show an Error with an optional SrcSpan, then crash This function should be used to mark impossible-to-reach codepathsv)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqghijklmnorstuvwpqrstuxyvzwxyz{|}~R)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz*+1257:<?@BCDFGJLMNOSXZ]`acfh,-./0,-./0,3-.4,-6,89-,8;-,8=>,8>,8A>,8-,8-,E-,E-,HI-,K-,K-,8,-,8PQR,T8UVW,Y,[\,^[\_,-,b-,de,g-,-mnopqijkl)tsuvrwzyx2)*}+1257:<?@BCDFGJLMNOSXZ]`acfh,-./0,-./0,3-.4,-6,89-,8;-,8=>,8>,8A>,8-,8-,E-,E-,HI-,K-,K-,8,-,8PQR,T8UVW,Y,[\,^[\_,-,b-,de,g-,-ijklmnopqghijklmnorstuvwpqrstuxyvzwxyz{|}~NoneG/{|}~3{|}~3{|}~*{|}~NoneGIN  NoneG==NoneGNoneGNoneGNoneG/ !      !! % !      NoneG8 !"#$%&'()*+,-./0123456789:;<=>?@ABCD1 !"#$%&'()*+,-./0123456789:;<=>?@ABCDNoneGEFGHIJKLMNOPQRSTU'the desugared rhs of the bind statementVWEFGHIJKLMNOPQRSTUVWNoneGX9Creates an name for an entry in the Static Pointer Table.The name has the form  sptEntry: N where  N) is generated from a per-module counter.-./YZ[\]^_`abcdefX-.//.--./YZ[\]^_`abcdefXNoneG"Main entry point to the desugarer."Main entry point to the desugarer. ghijkl ghijkl NoneGmThrow some errors.$Convert a typechecked module to Core nopmqrst nopmqrst!NoneGuvwxyz{|}~      !"#$%&'()*+,-./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 { | } ~  uvwxyz{|}~      !"#$%&'()*+,-./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 { | } ~  "None  !"35FGINKEncoding and Decoding Location --------------------------------------------2CManipulating Symbols ----------------------------------------------3CManipulating Symbols ----------------------------------------------4CManipulating Symbols ----------------------------------------------t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST_      !"#$%&'()*+,-./0123456789:;<=>?tTSR      !"#$%&'()Q*+PONMLKJIHGFEDCBA@,-./0123456789:;<=>?i       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST#NoneGU A single spanV,binder for whom we are generating constraintWnearest known Source SpanX Opaque type for a stack of spansUVWX YZ[ \ UVWXYZ[\UVWXYZ[\ UVWX YZ[ \ $None+345FGN]^_`a ]^_`a]^_`a ]^_`a %NoneFGcThe TagKey is the top-level binder, and Tag is a singleton Int list bcdefg bcdefgcbdfge bcdefg &NoneG 3Separating literate files into code/comment chunks.  type string  error string Bline number, total width of lines i.e. max (length (show lineNum))oLoc -> (Var, Type)pList of error intervalsrAFormats Haskell source code using HTML and mouse-over annotationssAFormats Haskell source code using HTML and mouse-over annotations "annotTokenise is absurdly slow: O( tokens x errors) IThe code for classify is largely stolen from Language.Preprocessor.Unlit. ;Join up chunks of code/comment that are next to each other.3 hijklmnopqrWhether to include anchors.1Whether input document is literate haskell or not3Haskell source code, Annotations as comments at endColoured Haskell source code.sWhether to include anchors.!Function to refine comment tokens1Whether input document is literate haskell or notHaskell Source, AnnotationsColoured Haskell source code.         t u       hijklmnopqrstursmnopquthijkl$   hijklmnopqrs         t u       'None35FG vwxyz{|}~vwxyz vwx~}y|{z vwxyz{|}~(None+345FGN(           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; <$           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; <)None35CFGKA-Normalize a module ------------------------------------------------------ =A-Normalize a CoreBind3 -------------------------------------------------- >*eta-expand CoreBinds with quantified types ?KANF Environments ----------------------------------------------------------" @ 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 [ \ ]None*+-./03457CGB Measure Refinement: {v | v = e }Measure Refinement: {v | (? v)  = p }Measure Refinement: {v | p}CSource Information Associated With Constraints --------------------CError Data Type ---------------------------------------------------.The type used during constraint generation, used also to define contexts for errors, hence in this file, and NOT in elsewhere. **DO NOT ATTEMPT TO MOVE** Am splitting into + global : many bindings, shared across all constraints + local : few bindings, relevant to particular constraintsthe "global" names for modulethe "local" names for sub-exprsCConstructor and Destructors for RTypes ----------------------------Refinement Type AliasesEValues Related to Specifications ------------------------------------Data type refinementsType Constructor NameTyvar ParametersPVar ParametersPLabel Parameters  DataCon, [(fieldName, fieldType)]Source Position/Measure that should decrease in recursive callsEValues Related to Specifications ------------------------------------ERefined Instances ---------------------------------------------------A World is a Separation Logic predicate that is essentially a sequence of binders that satisfies two invariants (TODO:LIQUID): 1. Each `hs_addr :: Symbol` appears at most once, 2. There is at most one  in a list.RTProp is a convenient alias for RefM that will save a bunch of typing. In general, perhaps we need not expose Ref directly at all.Ref describes `Prop ` and HProp? arguments applied to type constructors. For example, in [a] {h- v > h}>, we apply (via  ) * the ( denoted by `{h -> v > h}` to * the + denoted by `[]`. Thus, Ref is used for abstract-predicate (arguments) that are associated with _type constructors_ i.e. whose semantics are _dependent upon_ the data-type. In contrast, the 1 argument in  in the UReftR applies directly to any type and has semantics _independent of_ the data-type.$Abstract refinement associated with +5For expression arguments to type aliases see testspos vector2.hs%;let LH match against the Haskell type and add k-vars, e.g. `x:_` see testsposHoles.hs&BCo- and Contra-variance for TyCon --------------------------------Indexes start from 0 and type or predicate arguments can be both covariant and contravaariant e.g., for the below Foo dataTypedata Foo a b c d  p:: b -6 Prop, q :: Int -> Prop, r :: a -> Prop> = F (a r -> b p) | Q (c -> a) | G (Int q -> a r)there will be:varianceTyArgs = [Bivariant , Covariant, Contravatiant, Invariant] variancePsArgs = [Covariant, Contravatiant, Bivariant]( variance info for type variables)%variance info for predicate variables*8logical function that computes the size of the structure-GHC Type Constructor ^Predicate Parameters. TyConInfo7?Abstract Predicate Variables ----------------------------------=*Which Top-Level Binders Should be Verified[&The following is the overall type for specificationsA obtained from parsing the target source and dependent libraries]0Asserted Reftypes eg. see include/Prelude.spec^Assumed Reftypes_Auto generated Signatures `UData Constructor Measure Sigs eg. (:) :: a -> xs:[a] -> {v: Int | v = 1 + len(xs) }a%Measure Types eg. len :: [a] -> Intb;Data Type Invariants eg. forall a. {v: [a] | len(v) >= 0}cData Type Invariant Aliasesd,Predicated Data-Constructors e.g. see testsposMap.hse,Predicated Type-Constructors eg. see testsposMap.hsfList of  _H free in spec and corresponding GHC var eg. (Cons, Cons#7uz) from testsposex1.hsgUHow to embed GHC Tycons into fixpoint sorts e.g. "embed Set as Set_set" from includeDataSet.spech*Qualifiers in Source/Spec files e.g testspos qualTest.hsi5Top-level Binders To Verify (empty means ALL binders)j8Lexicographically ordered size witnesses for terminationk5Lexicographically ordered expressions for terminationlAVariables that should be checked in the environment they are usedm-Binders to IGNORE during termination checkingn-Binders to IGNORE during termination checkingoConfiguration OptionspName's exported by the module being verifiedsDictionary Environmentw=GHC Information : Code & Spec ------------------------------HPrinter ----------------------------------------------------------------Accessors for RTyCon `HPPrint ----------------------------------------------------------------- aFor debugging. bKTyConable Instances -------------------------------------------------------KKVar Profile --------------------------------------------------------------KOutput --------------------------------------------------------------------CAnnotations -------------------------------------------------------      !"#$%&'()*+,- ^./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 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     JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopJKqwxyz{|}~[\]^_`abcdefghijklmnopqrstuv=>? +,-.&'()* !%          "#$/0789:;<45612@ABCDEFGHIJKLMNOPQ3ijklWXYZRSTUV) !%          "#$&'()*+,- ^./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw xyz{|}~ 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    *None 3457FGN   +None35G  ,None&4FGKPretty Printing RefType --------------------------------------------------- From GHC: TypeRep KA whole bunch of PPrint instances follow ----------------------------------)            )            -None!"3457FGIN )Various functions for converting vanilla   to Spec%KAnnotations and Solutions --------------------------------------------------TBinders generated by class predicates, typically for constraining tyvars (e.g. FNum) KPrinting Refinement Types ------------------------------------------------- KConverting to Fixpoint ---------------------------------------------------- ?Wrappers for GHC Type Elements -------------------------------- JRefTypable Instances ----------------------------------------------------- JReftable Instances ------------------------------------------------------- GSubable Instances -----------------------------------------------------             ! " # $ % & ' ( ) * + , - . / 0 1! 2"#$%&' 3()* 4 5+ 6 7, 8 9- :./0 ;1 < =2 >3 ? @ A B C D E F G  H  I J K L M N O P Q R S T U V W X Y  Z [ \ ]    ^ _ `3      !"#$%&'()*+,-./01233 '/0.2+ $   *) #!-1%&(,3"             ! " # $ % & ' ( ) * + , - . / 0 1! 2"#$%&' 3()* 4 5+ 6 7, 8 9- :./0 ;1 < =2 >3 ? @ A B C D E F G  H  I J K L M N O P Q R S T U V W X Y  Z [ \ ]    ^ _ `.None+345FG9 pvarRType  returns a trivial RType2 corresponding to the function signature for a PVar . For example, if  :: T1 -> T2 -> T3 -> Prop then  pvarRType  returns an RType with an RTycon called  predRTyCon `RApp predRTyCon [T1, T2, T3]`: Instantiate 7 with 0 ----------------------------------------------- replacePredsk is the main function used to substitute an (abstract) predicate with a concrete Ref, that is either an  or RHProp4 type. The substitution is invoked to obtain the  resulting at predicate application sites in _`. The range of the 7 substitutions are fresh or true RefType0. That is, there are no further _quantified_ 7 in the target. a Requires:  not $ null sB substRCon :: String -> (RPVar, SpecType) -> SpecType -> SpecType;GInterface: Modified CoreSyn.exprType due to predApp -------------------#4 b56789 c d e f: g a h i j k l m n o p; q r s<=> t u v w x@ABCDEFGHIJKLMNOPQ456789:;<=>JKLMNOPQ@ABCDEFGHI654:78;9<>=#4 b56789 c d e f: g a h i j k l m n o p; q r s<=> t u v w x/NoneG@BLH Primitive TyCons ----------------------------------------------CBLH Primitive TyCons ----------------------------------------------GALH Primitive Types ----------------------------------------------?@ABCDEFG yHI z { |J } ~ ?@ABCDEFGHIJ GEFJHI?@ABDC?@ABCDEFG yHI z { |J } ~0NoneG7KKFixpoint Environment ------------------------------------------------------M%Integer Keys for Fixpoint EnvironmentNFixpoint EnvironmentPKHelper Types: Invariants --------------------------------------------------QKHelper Types: HEnv --------------------------------------------------------RKGeneration: Types ---------------------------------------------------------Ttop-level fixpoint envU subtyping constraints over RTypeV%wellformedness constraints over RTypeW.additional stratum constrains for let bindingsX$subtyping over Sort (post-splitting)Y.tracks constraints that come from let-bindingsZ5wellformedness constraints over Sort (post-splitting)["counter for generating fresh KVars\set of environment binders]source-position annotation map^#information about type-constructors_ ? FIX THIS`+Terminating Metrics for Recursive functionsa3Set of variables to ignore for termination checkingb ? FIX THISc ? FIX THISd4primitive Sorts into which TyCons should be embeddede>Fixpoint Kut variables (denoting "back-edges"/recursive KVars)f ? FIX THISgCheck Termination (?)hCheck Strata (?)i!Trust ghc auto generated bindingsjprune unsorted refinementsk#Errors during constraint generationlProfiling distribution of KVarsm3number of recursive functions seen (for benchmarks)n+Source Span associated with Fixpoint BindertKSubtyping Constraints ----------------------------------------------------- Location in original source fileSpecTypes for Bindings in scope,Map from free Symbols (e.g. datacons) to VarDictionary EnvironmentFixpoint Environment0recursive defs being processed (for annotations)Datatype invariantsDatatype checkable invariants6Top-level variables with (assert)-guarantees to verify&Top-level variables with assumed types6Top-level variables with auto generated internal types+How to embed GHC Tycons into fixpoint sorts*Map from top-level binders to fixpoint tagCurrent top-level binder6Type of recursive function with decreasing constraints6Let binding that have not been checked (c.f. LAZYVARs)&Types with holes, will need refreshingLogical ConstraintsMaxiom environment maps axiomatized Haskell functions to the logical functions*error that should be reported at the user KForcing Strictness --------------------------------------------------------cKLMNOPQ RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    RKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~SRSTUVWXYZ[\]^_`abcdefghijklmno~|}KLMNQtuyvwxvz{qrspPO$KLMNOPQ RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuyvwxvz{|}~    1None345FG8      /         2None345GhcombineProofs :: combinator -> default expressions -> list of proofs | -> combined resultTo make application we need to instantiate expressions irrelevant to logic | type application and dictionaries. | Then, ANF the final expressionANFFilling up dictionariesFilling up types!! 3None4FGThe name of the bound(Type variables that appear in the bounds'These are abstract refinements, for nowThese are value variablesThe body of the bound     4None35G     5None-3457CFGN[ KRefinement Type Environments ----------------------------------------------#        #        6None345FG2 adds a subtyping constraint into the global pool.(addPost: RJ: what DOES this function do?Add Well formedness Constraint Add a warningNAdd Identifier Annotations, used for annotation binders (i.e. at binder sites)/Used for annotating reads (i.e. at Var x sites)HUpdate annotations for a location, due to (ghost) predicate applications    None345GCConverting Results To Answers -------------------------------------This function is put in this module as it depends on the Exception instance, which depends on the PPrint instance, which depends on tidySpecType.Show an Error, then crash KPretty Printing Error Messages -------------------------------------------- Need to put  PPrint Error: instance here (instead of in Types), as it depends on PPrint SpecTypes, which lives in this module.        7None*-./3457CFGNL                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D:                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D8NoneG E E9None345G User-defined properties for ADTsAssumed (unchecked) typesImported functions and typesLocal type signaturesData type invariants"Data type invariants to be checkedLoaded spec module namesPredicated data definitionsIncluded qualifier filesRefType aliasesExpression aliasesGHC-Tycon-to-fixpoint Tycon map Qualifiers in source/spec files #Information on decreasing arguments AVariables that should be checked in the environment they are used +Ignore Termination Check in these Functions *Binders to turn into axiomatized functions7Binders to turn into measures using haskell definitions5Binders to turn into bounds using haskell definitions;Binders to turn into logic inline using haskell definitions4Type Constructors that get automatically sizing info4Command-line configurations passed in through source!Measures attached to a type-class'Mappings from (measure,type) -> measureRefined Type-Classes$Terminating Conditions for functions!A wired-in measure strLen; that describes the length of a string literal, with type Addr#.6      F G H I J K L M N O P Q R!" S.      !".      !"      F G H I J K L M N O P Q R!" S:NoneG%% returns  T for unhandled lits because otherwise string-literals show up as global int-constants which blow up qualifier instantiation. U#$ V%#$%#$% U#$ V%;None345FG(Used to parse .spec files W~The top-level parser for "bare" refinement types. If refinements are not supplied, then the default "top" refinement is used. X@Parsing Qualifiers --------------------------------------------- Y:Bundling Parsers into a Typeclass ------------------------ Z For debugging [ \ ] ^ _ ` 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 {&' | } ~(  ) 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 {&' | } ~(  ) W X      Y Z<NoneG *+ ,-./01*+,-./01*+,-./01 *+ ,-./01=NoneG2   222   >None35G 3      33 3      ?None345G 3Intervals of line numbers that have been re-checked -Map from saved-line-num ---> current-line-num "Variable dependencies "call-graph" Variable definitions &line at which binder definition starts $line at which binder definition ends name of binder4+Main type of value returned for diff-check.99 returns a subset of the  [CoreBind] of the input targetm file which correspond to top-level binders whose code has changed and their transitive dependencies.:thin returns a subset of the  [CoreBind]F given which correspond to those binders that depend on any of the Var s provided.   cuts off the start-line to be no less than the line at which the binder is defined. Without this, i.e. if we ONLY use the ticks and spans appearing inside the definition of the binder (i.e. just eSp) then the generated span can be WAY before the actual definition binder, possibly due to GHC INLINE pragmas or dictionaries OR ... for an example: see the "INCCHECK: Def" generated by liquid -d benchmarksbytestring-0.9.2.1Data/ByteString.hs where spanEnd~ is a single line function around 1092 but where the generated span starts mysteriously at 222 where Data.List is imported. DDiff Interface -----------------------------------------------------,`lineDiff new old` compares the contents of src with dst and returns the lines of src that are different. "Identifies lines that have changed;save" creates an .saved version of the target; file, which will be used to find what has changed the  next time target is checked. getShift lm old returns Just  if the line number old shifts by  in the diff and returns Nothing otherwise. setShift (lo, hi, ) lm updates the interval map lm appropriately DAeson instances ----------------------------------------------------L     !   456789 " # $ % & ' (: ) * + , - . / 0 1  2 3 4 5 6 7 8 9  :  Starting lineList of lengths of diffsList of changed line numbers ;; < = > ? @ A B C D E F   G H I J K L M N O P Q R S T U V W456789:;456789:;D     !   456789 " # $ % & ' (: ) * + , - . / 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@None345FG XCJSON: Annotation Data Types ---------------------------------------<output" creates the pretty printed output=annotate% actually renders the output to files YDPandoc HTML Rendering (for lhs + markdown source) ------------------ ZDDirect HTML Rendering (for non-lhs/markdown source) ---------------- [topn tail True! is used for standalone HTML, topn tail False for embedded HTML \IBuilding Annotation Maps ------------------------------------------------TThis function converts our annotation information into that which is required by _a& to generate mouseover annotations. ]ITokenizing Refinement Type Annotations in @-blocks ----------------------OThe token used for refinement symbols inside the highlighted types in @-blocks. ^^The top-level function for tokenizing @-block annotations. Used to tokenize comments by ACSS. _CCreating Vim Annotations ------------------------------------------ `KLH Related Stuff ----------------------------------------------------------KA Little Unit Test -------------------------------------------------------- aCJSON Instances ----------------------------------------------------= b c d e f g h i X j<= k l m n Y o p q r Z [ s t u \ v w x y z { | } ~  ] ^ _ ` ar<=r<=7 b c d e f g h i X j<= k l m n Y o p q r Z [ s t u \ v w x y z { | } ~  ] ^ _ ` aANone35FGN Attempt to canonicalize all   s in the L3 so we don't have to worry about relative paths.@Updating optionsBCExit Function ----------------------------------------------------- > ?@ AB Q>?@AB>?A@BQ > ?@ AB BNone4GTNError-Reader-IO For Bare Transformation --------------------------------------CDEFGHIJKLMNOPQRSTUV WX YZ[CDEFGHIJKLMNOPQRSTUVWXYZ[TSRCDEFGHIJKLMNOPQWXYZ[UVC DEFGHIJKLMNOPQRSTUV WX YZ[CNone35G\ ] \]\]\ ] DNone4G^ ^^^ ENone345Gc0It's possible that we have already resolved the  : we are looking for, but have had to turn it back into a  , e.g. to be used in an Expr , as in {v:Ordering | v = EQ}$. In this case, the fully-qualified   ( GHC.Types.EQO) will likely not be in scope, so we store our own mapping of fully-qualified  s to  s and prefer pulling   s from it._`ab cd e _`abcde_`abcde_`ab cd e FNoneFGf g fgfgf g GNoneG JReplace Predicate Arguments With Existentials ----------------------------hmNiki: please write more documentation for this, maybe an example? I can't really tell whats going on... (RJ) h hh  h HNone345G "Specification for Haskell function MType for uninterpreted function that approximated Haskell function into logic i ii   i INone4Gjklmn opq r stu  jklmnopqrstu nsrjklmopq tu jklmn opq r stuJNoneFGvwx vwxvwxvwx KNone345FGyz yzyzyz LNone4FGexprArg converts a tyVar to an exprVar because parser cannot tell HORRIBLE HACK To allow treating upperCase X as value variables X e.g. type Matrix a Row Col = List (List a Row) Col{|}~     {|}~{|}~{|}~     MNone4FG  NNone@FGN checkRTypeO determines if a type is malformed in a given environment --------------------- checkMeasuresO determines if a measure definition is wellformed ----------------------------- !"#$%&'()*+,-./0123456 !"#$%&'()*+,-./0123456ONone4FG7KExpand Measures -----------------------------------------------------------89:;<=>?@ABCDE7FG  89:;<=>?@ABCDE7FGPNoneFGHIJKLMNOPQRSTUVHIJKLMNOPQRSTUVQNone4@FG=API: Bare Refinement Types ----------------------------------WXYZ[\]^_`abWXYZ[\]^_`abRNone35GcdecdeSNone345G[fKReftypes from F.Fixpoint Expressions --------------------------------------KConstraint Generation Panic -----------------------------------------------ghijklmnopqrstuvwfxyz{ghijklmnopqrstuvwfxyz{TNone*-./3457CFGN|&TODO: All this *should* happen inside Bare; but appears to happen after certain are signatures are fresh#-ed, which is why they are here.}=Generation: Freshness ---------------------------------------FRight now, we generate NO new pvars. Rather than clutter code with < calls, put it in one place where the above invariant is  obviously4 enforced. Constraint generation should ONLY use  freshTy_type and  freshTy_expr~~Used to generate "cut" kvars for fixpoint. Typically, KVars for recursive definitions, and also to update the KVar profile.7TERMINATION TYPE --------------------------------------KConstraint Generation: Corebind ------------------------------------------- varTemplate2 is only called with a `Just e` argument when the e corresponds to the body of a Rec binder.KConstraint Generation: Checking -------------------------------------------instantiatePreds' peels away the universally quantified PVars of a RType, generates fresh Ref. for them and substitutes them in the body.instantiateStrata generates fresh Strata: vars and substitutes them inside the body of the type.KType Synthesis ------------------------------------------------------------ consElimE- is used to *synthesize* types by **existential elimination** instead of *checking* via a fresh template. That is, assuming  |- e1 ~> t1 we have  |- let x = e1 in e2 ~> Ex x t1 t2 where , x:t1 |- e2 ~> t2 instead of the earlier case where we generate a fresh template t" and check , x:t1 |- e <~ t consFreshE is used to *synthesize* types with a **fresh template** when the above existential elimination is not easy (e.g. at joins, recursive binders)BHelpers: Creating Fresh Refinement -------------------------------KHelpers: Creating Refinement Types For Various Things ---------------------RJ: nomeet replaces  for  in the definition of  . Why does `tests/neg/strata.hs`$ fail EVEN if I just replace the 2 case? The fq file holds no answers, both are sat.KCleaner Signatures For Rec-bindings ---------------------------------------p|}~l|}~UNone 4G$     [\]^_`abcdefghijklmnopqrstuv[\]^_`abcdefghijklmnopqrstuv     bNoneG[\]^_`abcdefghijklmnopqrstuv[\]^_`abcdefghijklmnopqrstuvVNone G[WNoneGXNone35FGN$ !"#$%&'()*+,-./012345678$ !"#$%&'()*+,-./012345678YNoneFGNThis fellow does the real work9:;<=>?@ABCDE9:;<=>?@ABCDEZNone+035GFJResponse -----------------------------------------------------------------JCommand ------------------------------------------------------------------JState -------------------------------------------------------------------- FGHIFGHI[NoneGJJ\SafeG]None<G^Safe<=GKcdecdfcdgcdhcdicdicdjcdkcdlmnomnpmnqmnrmnsmtumtvmtwmtxmtymtzm{|m{}m{~m{m{       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$ %!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>"?"y"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"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:;<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwwxyz{{|}~      !"#$%&'()*++,-./0123456789:*;*<*=*>+?+@+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-{.|.}.~........////////////00000000000000000000000000000000000000000000000000000000000000000000000000000000001111111122222222222P2222222222222222222222333 3 3 3 3 3 3333455555555555555 5!5"5#5$5%5&6'6(6)6*6+6,6-6.6/601234567778798:9;9;999<9=9999>99?9@9A999999B9C9D99E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U:V:W:X;Y;Z;[;\<<<]<^<_<`<a<b=c>d?e?f?g?h?i?j?k?l@m@nAoApAqArAsBtBuBvBwBxByBzB{BDBLB|B}B~BBBBBBBBBBBBCCDEEEEEEEFFGHIIIIIIIIIIIIJJJKKLLLLLLMMMMMNNNOOOOOOOOOPQQQQQQQQQQQQQQQQRRSSSSSTUVWXXYYYZZZZZZZ[[\]]]]]]]]^^^^^^^^^^^^^^^^^^^^^      !"#D$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~            !"#$%&'()*+,-./01234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~N        !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! ! !!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!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&D& 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) c) d) e) f) f) g) h) i) j) k) l) m) n) o) p) 0) q) r) s) t) u) v) w) x ymn z { | } ~                              /              .                                                                  * * * * * * * * * * * * + + + + + +4+ + + + + , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,(, , , , ,1, !m " #- $- %- &- '- (- - )-- *- +- ,- -- .- /- 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 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 p1 1 1 1 1 1 11 1 1 1 1h1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1)1 1 1 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 V4 5 5 5 5 5 5 5 5 5 5 5 5 p5 5 5                     7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 77 7 7 7 7 7 7 7 7 7 777 7 7 7 7 7 7 !7 "7 #7 $7 %7 &77 '7 (7 )7 *7 +7 7 ,7 -7 .7 /7 07 17 27 37 47 57 67 77 87 97 :7 ;7 <7 =7 >7 p7e7 ?7 @7 A8 B9 C9 D9 E9 F99 G9 H9 I9 J9 K9 L9 M9 N9 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@ {@ |@ }@ ~@ @ @ @ @ @ @ @ @ @ @ A P  A A AA A A A A A A A A A A A A A A A A A B B C C C C C C C C C C C C C C C C C C C D D D D c  P Q cE E E E E E E E E F F F G G G<G G G G G G G G G G G G H H HH jH H HH H H H H H H HH H I I I I J J J J K K K K K K K K K K K K K L L L L L L L L L L L L LMMMMMMMMN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#O$O%O&O'O O(O)O*O+O,O-O.O/O0O1O2O3P4P5P6P7P8P9P:P;P<P=P>P?P@PAPBQCQDQEQFQGQHQIQJQKQLQMQNRORPRQSRSSSTSUSVSWSXSYSZS[S\S]S^S_S`SaSbScSdSeSfSTgThTiTjTkTlTmTnToTpTqTrTsTtTu P QvTwTxTyTzT{T|T}T~T DTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {TTTTTUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUVVVVVVWWXXXXXXXXXXX X X X X XXXXXXXXXXXXXXXXXXX Y!Y"Y#Y$Y%Y&Y'Y(Y)Y*Y+Y,Y ZZ-Z.Z/[01liqui_EeUVr8QYWFSCyq6V3qzG75*Language.Haskell.Liquid.Desugar710.DsUtilsLanguage.Haskell.Liquid.TypesLanguage.Haskell.Liquid.UX.Tidy*Language.Haskell.Liquid.Desugar710.DsCCall(Language.Haskell.Liquid.Desugar710.Match,Language.Haskell.Liquid.Desugar710.DsForeign)Language.Haskell.Liquid.Desugar710.DsExpr+Language.Haskell.Liquid.Desugar710.Coverage$Language.Haskell.Liquid.Prover.Names+Language.Haskell.Liquid.Prover.SMTInterface#Language.Haskell.Liquid.Prover.Misc(Language.Haskell.Liquid.Prover.ConstantsPaths_liquidhaskell!Language.Haskell.Liquid.UX.Config,Language.Haskell.Liquid.Types.Specifications#Language.Haskell.Liquid.Types.Names$Language.Haskell.Liquid.Prover.Types%Language.Haskell.Liquid.Prover.Parser%Language.Haskell.Liquid.Prover.Pretty$Language.Haskell.Liquid.Prover.Solve&Language.Haskell.Liquid.Types.VarianceLanguage.Haskell.Liquid.Misc$Language.Haskell.Liquid.Types.Errors+Language.Haskell.Liquid.Desugar710.MatchLit(Language.Haskell.Liquid.Desugar710.Check*Language.Haskell.Liquid.Desugar710.DsGRHSs*Language.Haskell.Liquid.Desugar710.DsBinds+Language.Haskell.Liquid.Desugar710.MatchCon+Language.Haskell.Liquid.Desugar710.DsArrows-Language.Haskell.Liquid.Desugar710.DsListComp*Language.Haskell.Liquid.Desugar710.Desugar*Language.Haskell.Liquid.Desugar710.HscMain)Language.Haskell.Liquid.Desugar710.DsMeta Language.Haskell.Liquid.GHC.Misc%Language.Haskell.Liquid.GHC.SpanStack&Language.Haskell.Liquid.Types.Visitors Language.Haskell.Liquid.UX.CTagsLanguage.Haskell.Liquid.UX.ACSS Language.Haskell.Liquid.GHC.Play&Language.Haskell.Liquid.Transforms.Rec&Language.Haskell.Liquid.Transforms.ANF(Language.Haskell.Liquid.Constraint.Fresh$Language.Haskell.Liquid.Types.Strata)Language.Haskell.Liquid.Types.PrettyPrint%Language.Haskell.Liquid.Types.RefType&Language.Haskell.Liquid.Types.PredTypeLanguage.Haskell.Liquid.WiredIn(Language.Haskell.Liquid.Constraint.Types.Language.Haskell.Liquid.Transforms.CoreToLogic.Language.Haskell.Liquid.Constraint.ProofToCore$Language.Haskell.Liquid.Types.Bounds+Language.Haskell.Liquid.Transforms.RefSplit&Language.Haskell.Liquid.Constraint.Env(Language.Haskell.Liquid.Constraint.Monad)Language.Haskell.Liquid.Constraint.Axioms"Language.Haskell.Liquid.Types.MeetLanguage.Haskell.Liquid.Measure&Language.Haskell.Liquid.Types.LiteralsLanguage.Haskell.Liquid.Parse*Language.Haskell.Liquid.Types.Dictionaries+Language.Haskell.Liquid.Transforms.Simplify!Language.Haskell.Liquid.UX.Errors$Language.Haskell.Liquid.UX.DiffCheck#Language.Haskell.Liquid.UX.Annotate"Language.Haskell.Liquid.UX.CmdLine Language.Haskell.Liquid.Bare.Env'Language.Haskell.Liquid.Bare.RefToLogic$Language.Haskell.Liquid.Bare.SymSort#Language.Haskell.Liquid.Bare.Lookup#Language.Haskell.Liquid.Bare.Expand(Language.Haskell.Liquid.Bare.Existential"Language.Haskell.Liquid.Bare.Axiom!Language.Haskell.Liquid.Bare.Misc$Language.Haskell.Liquid.Bare.Plugged$Language.Haskell.Liquid.Bare.Resolve#Language.Haskell.Liquid.Bare.OfType%Language.Haskell.Liquid.Bare.DataType"Language.Haskell.Liquid.Bare.Check$Language.Haskell.Liquid.Bare.Measure"Language.Haskell.Liquid.Bare.RTEnv!Language.Haskell.Liquid.Bare.Spec-Language.Haskell.Liquid.Constraint.Constraint(Language.Haskell.Liquid.Constraint.Split+Language.Haskell.Liquid.Constraint.Generate$Language.Haskell.Liquid.Bare.GhcSpec,Language.Haskell.Liquid.Constraint.Qualifier-Language.Haskell.Liquid.Constraint.ToFixpoint%Language.Haskell.Liquid.GHC.InterfaceLanguage.Haskell.Liquid.Liquid)Language.Haskell.Liquid.Interactive.Types+Language.Haskell.Liquid.Interactive.HandlerLanguage.Haskell.Liquid.ListLanguage.Haskell.Liquid.ForeignLanguage.Haskell.Liquid.PreludeLanguage.Haskell.Liquid ConstraintACSSLanguage.Haskell.Liquid.BareghcDsMonadeqn_rhseqn_patsEqnInfo EquationInfo MatchResultCantFailCanFail CanItFailliqui_GFWNuoupb5XC4h0g83fsiMLanguage.Fixpoint.Types.Names dummyName tidySymbolisDummy LocSymbolLocTextLanguage.Fixpoint.Types.SpansdummyLocvallocElocLocLocated#Language.Fixpoint.Types.PrettyPrintshowpppprint pprintPrec pprintTidyPPrintdsCCallmkFCallunboxArg boxResult resultWrappermatchSinglePat matchSimply matchWrappermatch dsForeigns dsForeigns' dsFImport dsCImportdsFCall dsPrimCall dsFExportdsFExportDynamicmkFExportCBitsforeignExportInitialisertoCType dsLocalBindsdsLExprdsExpraddTicksToBinds hpcInitCode exprToBoolSym makeContext checkValidassertpowerset powerset'/\/findMmapSndsecond3debugwhenLouddeltaepsilon default_depthsmtFileExtentionsmtFileversion getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName HasConfig getConfigConfigfilesidirsnewcheck diffchecklinear higherorder fullcheck saveQuerybindersnoCheckUnknown notermination autoproofs nowarningstrustinternals nocaseexpandstrata notruetypestotalitynoPrunecores minPartSize maxPartSize maxParams smtsolver shortNames shortErrorscabalDir ghcOptionscFiles eliminateportexactDC scrapeImportsscrapeUsedImports elimStatshasOpt specAnchor lenLocSymbolArgExprarg_sort arg_exprs arg_ctorsQueryq_axiomsq_ctorsq_varsq_envq_goalq_fnameq_depthq_declsq_isHOInstanceInst inst_axiom inst_args inst_predProofInvalid p_evidence PredicatePredp_predExprEVarEAppVarCtor vctor_var vctor_vars vctor_propCtor ctor_expr ctor_sort ctor_vars ctor_propVarvar_namevar_sortvar_infoAxiom axiom_name axiom_vars axiom_bodyLQueryLAxiomLVarCtorLVar varCtorToCtorisEVarmkExpr$fSubablePredicate $fMonoidQuery$fMonoidPredicate$fEqCtor$fEqVar parseQueryqueryPdeclsPdeclPdepthPgoalPctorP ctorAxiomPbindPenvP predicatePaxiomP argumentsPvarPshowNumparsep $fShowArgExpr $fShowProof $fShowQuery$fShowPredicate $fShowExpr $fShowVarCtor $fShowCtor $fShowVar$fShowInstance $fShowAxiom$fPPrintPredicate $fPPrintExpr $fPPrintVar ArgumentsPrEnvsolve notGHCVariterativeSolvegroupExpressions placeExprmergeExpressionsplaceArg findValidminimize bruteSearchfilterEquivalentExpressionsmakeEqassertExpressionspredCtormakeExpressionsputExpr makeArguments makeCTorArgsapplyArgumentsmakeArgumnetsExprarityinitExpressions instantiate makeArgs' duplicateArgsmakeArgs axiomInstance checkExpr mkcheckExpr makeSorts unifiableVariance Invariant Bivariant Contravariant Covariant VarianceInfo!? safeFromJustfst4snd4 mapFourth4addFst3addThd3dropFst3dropThd3replaceNfourth4third4mapSndMfirstMsecondMfirst3Msecond3Mthird3Mthird3zip4 getIncludeDir getCssPathgetCoreToLogicPathsafeZipWithErrorsafeZip3WithErrormapNsmapN zipWithDefMsinglemapFstmapFst3mapSnd3mapThd3hashMapMapWithKeyhashMapMapKeys concatMapM firstElems splitters bchopAltschopAltssortDiff angleBracketsmkGraph tryIgnore=>> firstJust intToString UserErrorTError ErrSubTypeposmsgctxtacttexp ErrFCrash ErrAssTypeoblcondErrParsepErr ErrTySpecvartyp ErrTermSpecexp ErrDupAliaskindlocs ErrDupSpecs ErrDupMeastycon ErrBadData ErrDataConErrInvtinvErrIAl ErrIAlMistAstUsErrMeasmsErrHMeas ErrUnboundErrGhc ErrMismatchhslqlqPos ErrPartPredectrargNexpNactN ErrAliasCycleacycleErrIllegalAliasAppdnamedpos ErrAliasAppnargsdargsErrSaved ErrTerminbind ErrRClassclsinsts ErrBadQualqnameErrOtherObligOTermOInvOConsCtxErrorctErrctCtxerrorWithContextuErrorpanicDocpanictodo impossibleppErrorunpackRealSrcSpan realSrcSpanppError'CaseAlt MkCaseAltalt_pat alt_bndrs alt_wrapper alt_resultselectSimpleMatchVarLselectMatchVarsselectMatchVarfirstPat shiftEqns matchCanFailalwaysFailMatchResultcantFailMatchResultextractMatchResultcombineMatchResultsadjustMatchResultadjustMatchResultDs wrapBindswrapBindseqVarmkCoLetMatchResultmkViewMatchResultmkEvalMatchResultmkGuardedMatchResultmkCoPrimCaseMatchResultmkCoAlgCaseMatchResultmkCoSynCaseMatchResult mkErrorAppDs mkCoreAppDs mkCoreAppsDsmkCastDsmkSelectorBinds mkLHsPatTupmkLHsVarPatTupmkVanillaTuplePatmkBigLHsVarTup mkBigLHsTupmkBigLHsVarPatTupmkBigLHsPatTup mkOptTickBoxmkBinaryTickBoxdsLit dsOverLitwarnAboutIdentitieswarnAboutEmptyEnumerations tidyLitPattidyNPat matchLiteralshsLitKey hsOverLitKey matchNPatsmatchNPlusKPats ExhaustivePatcheck dsGuardeddsGRHSsdsGRHS dsTopLHsBinds dsLHsBindsdsSpecdecomposeRuleLhs dsHsWrapper dsTcEvBinds dsEvBindsmatchConFamily matchPatSynmatchEquations dsProcExpr dsListComp dsPArrComp dsMonadComp dsValBindsdeSugarWithLocdeSugar deSugarExprhscDesugarWithLoc dsBrackettemplateHaskellNames qTyConName nameTyConName decTyConName typeTyConName tExpTyConNameliftNameliftStringName mkNameG_vName mkNameG_dNamemkNameG_tcName unTypeName unTypeQNameunsafeTExpCoerceNametExpDataConName expQTyConName decQTyConNamedecsQTyConNametypeQTyConName patQTyConName quoteExpName quotePatName quoteDecName quoteTypeNamePrecL MGIModGutsMI mgi_binds mgi_modulemgi_deps mgi_dir_imps mgi_rdr_envmgi_tcs mgi_fam_insts mgi_exports mgi_cls_inst miModGutsmgi_namestring srcSpanTick tickSrcSpan stringTyVar stringVar stringTyConstringTyConWithKindhasBaseTypeVar isBaseType validTyVartvIdtracePprpprShowtidyCBsunTick unTickExprisFractionalClass isDataConIdgetDataConVarUnique toFixSDocsDocDocpprDocshowPprshowSDoc showSDocDumptypeUniqueStringfSrcSpanfSrcSpanSrcSpansrcSpanFSrcSpansourcePos2SrcSpansourcePosSrcSpansourcePosSrcLocsrcSpanSourcePossrcSpanSourcePosEsrcSpanFilenamesrcSpanStartLoc srcSpanEndLoconeLinelineColrealSrcSpanSourcePosrealSrcSpanSourcePosE getSourcePos getSourcePosEcollectArgumentscollectValBinders'ignoreLetBindsisDictionaryExpression realTcArity kindArity uniqueHash lookupRdrNamequalImportDecl ignoreInlinesymbolTyConWithKind symbolTyCon symbolTyVar varSymbolqualifiedNameSymbolfastStringTexttyConTyVarsDef gHC_VERSIONsymbolFastString desugarModulelintCoreBindingssynTyConRhs_maybetcRnLookupRdrNamedropModuleNamestakeModuleNamesdropModuleUnique sepModNames sepUnique mungeNames qualifySymbol isQualified wrapParens isParened isDictionary isInternal stripParensstripParensSym $fNFDataVar $fNFDataType $fNFDataTyCon$fNFDataSrcSpan $fNFDataClass $fShowTyCon $fShowClass $fShowName$fFixpointType$fFixpointName $fFixpointVar$fHashableTyCon $fHashableVar $fSymbolicVar$fSymbolicName$fSymbolicTyCon$fSymbolicFastString$fOutputableHashSet$fHashableSrcSpan $fHashableLocSpanTick SpanStackemptypushsrcSpanshowSpan CBVisitablefreeVarsreadVarsletVarsliteralsTagEnvTagKey defaultTag memTagEnv makeTagEnvgetTagStatusSafeUnsafeErrorCrashAnnMapAnntypeserrorsstatushscolourhsannot srcModuleNamebreakSSubablesubsubTysubVar substTysWith $fSubableType $fSubableBind $fSubableVar $fSubable(,,)$fSubableCoercion $fSubableExprtransformRecExprtransformScope anormalizeMeasureMnamesorteqnsDefmeasuredparamsctordsortbindsbodyBodyEPRRTEnvRTE typeAliases exprAliasesModTypeTarget SrcImport SpecImportModNameCinfoCici_locci_err ErrorResultREnvreGlobalreLocal UReftableofUReftRTypeRepty_varsty_preds ty_labelsty_bindsty_reftsty_argsty_resRTAliasRTArtNamertTArgsrtVArgsrtBodyrtPosrtPosEDataDeclDtycName tycTyVarstycPVars tycTyLabstycDCons tycSrcPostycSFunHAxiomanameabindsatypesalhsarhsRDEnvDEnv RInstanceRIriclassrityperisigs RefTypableppRType TyConableisFunisListisTupleppTyconisClassisEqualisNumCls isFracClsSubsTysubtStrataStratumSVarSDivSWhnfSFinRRPropSpecPropSpecTypeBareTypePrTypeRReftRPVarBPVarRSortBSortRRTypeBRTypeUReftMkUReftur_reftur_pred ur_strataHSegHBindhs_addrhs_valHVarWorldRTPropRefRProprf_argsrf_bodyRTypeRVarrt_varrt_reftRFunrt_bindrt_inrt_outRAllT rt_tvbindrt_tyRAllP rt_pvbindRAllSrt_sbindRApprt_tyconrt_argsrt_pargsRAllE rt_allargRExrt_exargRExprArgRAppTyrt_argrt_resRRTyrt_envrt_refrt_oblRHole TyConInfovarianceTyArgsvariancePsArgs sizeFunctionRTyConrtc_tcrtc_infoRTyVarRTVPrUsedPVarPVKindPVPropPVHPropPVarPVpnameptypepargpargs TargetVarsAllVarsOnlyDataConPdc_loc freeTyVarsfreePred freeLabelstyConststyArgstyResdc_locETyConP freeTyVarsTy freePredTy freeLabelTy varianceTs variancePssizeFunLMaplvarlargslexprLogicMapLM logic_map axiom_mapGhcSpecSPtySigsasmSigsinSigsctorsmeas invariantsialiasesdconsPtconsPfreeSymstcEmbeds qualifierstgtVarsdecrtexprslvarslazyautosizeconfigexportsmeasurestyconEnvdictsaxiomslogicMap proofTypeGhcInfoGItargetenvcbsderVarsimpVarsdefVarsuseVarshqFilesimportsincludesspecPPEnvPPppPsppTyVarppSsppShortppEnv ppEnvShort toLogicMap eAppWithMappvTypepvars isClassRTyCon rTyConPVs rTyConPropVsisPropPVisEqType isClassTypedefaultTyConInfo ignoreObligrPropPisSVar mapRTAVars fromRTypeRep toRTypeRepmkArrow bkArrowDeepbkArrow safeBkArrowmkUnivsbkUnivbkClassrFunrClsrRCls addInvCondpApppappSym isTrivialmapReftisBaseisFunTymapReftMfoldReft foldReft' efoldReftmapBotmapBindofRSorttoRSort insertsSEnv rTypeValueVar rTypeReftstripRTypeBase makeDivType makeFinType getStrata isSrcImport isSpecImport getModName getModStringmapRTmapREMSpecctorMapmeasMapcmeasMapimeasKVProfKVKindRecBindE NonRecBindE TypeInstE PredInstELamECaseELetEOutputOo_varso_errorso_typeso_templso_botso_resultAnnotAnnUseAnnDefAnnRDfAnnLocAnnInfoAIRClassrcNamercSupersrcTyVars rcMethodsCMeasureCMcNamecSort emptyKVProf updKVProfholeisHolehasHole liquidBegin liquidEnd Freshablefreshtruerefresh SubStratumsubSsubsS<:= solveStrataOkRTpprManyOrderedpprintLongList pprintSymbolrtypeDoc ppr_rtypestrengthenDataConTypepdVarfindPVaruRTypeuRType' uRTypeGenuPVaruReftuToprVarrTyVar symbolRTyVar normalizePdsrExrAppstrengthenRefTypeGenmeetable strengthen addTyConInfo appRTyCon generalize tyClassessubsTyVars_meetsubsTyVars_nomeetsubsTyVar_nomeetsubsTyVar_meetsubsTyVar_meet'subts subvUReft subvPredicateofType dataConReftisBaseTy dataConMsRefttoTyperTypeSortedReft rTypeSort applySolutionshiftVVtypeUniqueSymboltypeSort tyConNamemkDataConIdsTy classBinds makeNumEnv isDecreasing makeDecrType isSizeable makeLexRefa mkTyConInfo makeTyConInfodataConPSpecType dataConTyreplacePredsWithRefs pVartoRConc pvarRType replacePredspredType substParg pappAritypappSortwiredSortedSyms dictionaryVardictionaryTyVardictionaryBindcombineProofsNameproofTyConName propTyCon hpropTyConpropType wiredTyCons wiredDataCons pdVarReftFEnvFEfeBindsfeEnv RTyConIAl RTyConInvHEnvCGInfofEnvhsCshsWfssCsfixCsisBindfixWfs freshIndexannotMap tyConInfospecDecr termExprs specLVarsspecLazyautoSize tyConEmbedkutslitstcheckschecktrustghc pruneRefs logErrorskvProfrecCount bindSpansallowHOFixWfCFixSubCWfCSubCsenvlhsrhsSubRobligref LConstraintLCCGEnvCGEcgLocrenvsyenvdenvfenvrecsinvsialgrtysassmsintysembtgEnvtgKeytreclcbholeslcsaenvcerrCG fromListHEnvelemHEnv mkRTyConInv mkRTyConIAl addRTyConInvaddRInv insertsFEnvinitFEnv logicTypestrengthenResult runToLogic coreToDef coreToFun coreToPred coreToLogicmkLitToCoretoCoreCmbExprHExprHProof HInstanceHQueryHVarCtorHCtorHId combineProofscombinemakeAppanfmakeDictionariesmakeDictionaryinstantiateVars resolveVs resolveVarsubstTyV varCombinevarANFvarANFPr $fShowType $fToCoreVar $fToCoreCtor $fToCoreExpr $fToCoreAxiom $fToCoreProof$fToCoreInstanceRRBEnvRBEnvRRBoundRBoundBoundbnametyvarsbparamsbargsbbody makeBoundsplitXRelatedRefs fromListREnv insertREnv lookupREnvlocalBindsOfType toListREnvextendEnvWithVV addBindersrTypeSortedReft'+= globalize++=addSEnv+++=-=?= setLocationsetBindsetRecssetTRec getLocation pushConsBindaddCaddPostaddW addWarningaddIdA boundRecVaraddLocA updateLocAaddAResultresult cinfoError isTmpSymbol tidySpecType panicError expandProofsmakeCombineTypemakeCombineVar meetVarTypesSpecsigs localSigs dataDeclsaliasesealiasesembedshmeashboundsinlinespragmas cmeasures imeasuresclasses termexprs rinstance dvarianceboundsBareSpec qualifySpecmkMmkMSpec'mkMSpec dataConTypes defRefTypestrLenwiredInMeasuresliteralFRefType literalFReft literalConsthsSpecificationPlhsSpecificationPspecSpecificationPparseSymbolToLogic dfromListdmaptydmapdinsertdlookupdhasinfosimplifyBounds tidyError DiffCheckDCnewBinds oldOutputnewSpecslicethin saveResultmkOutputannotategetOptsmkOpts withPragmas defConfigexitWithResultBareEnvBEmodNametcEnvrtEnvvarEnvhscEnvlogicEnvTInlineTItiargstibodyInlnEnvTCEnvWarnBareMinsertLogicEnv insertAxiominModule withVArgs setRTAlias setREAliasexecBare Transformable txRefToLogic txRefSort GhcLookup lookupNamelookupGhcThing lookupGhcVarlookupGhcTyConlookupGhcDataCon expandReft expandExpr txExpToBind makeAxiom MapTyVarSTMTVSTvmaperrmsg makeSymbols initMapSt runMapTyVars mapTyVars mkVarExprjoinVarsimpleSymbolVar hasBoolResultmakePluggedSigsmakePluggedAsmSigsmakePluggedDataCons Resolvableresolve ofBareType ofMeaSortofBSortofBPVar mkSpecType mkSpecType' makeConTypes dataConSpecmeetDataConSpecmakeTyConEmbedsmakeRecordSelectorSigs checkGhcSpeccheckTerminationExprcheckTymakeHaskellMeasuresmakeHaskellInlinesstrengthenHaskellMeasuresmakeMeasureSelectorsmakeMeasureSpecmakeMeasureSpec'makeClassMeasureSpec varMeasuresmakeHaskellBounds makeRTEnv makeClassesmakeQualifiers makeHintsmakeLVarmakeLazy makeHBounds makeTExpr makeHIMeasmakeTargetVarsmakeAssertSpecmakeAssumeSpecmakeDefaultMethods makeIAliasesmakeInvariantsmakeSpecDictionaries makeBoundsaddConstraintsconstraintToLogicsplitWsplitSsplitCenvToSub panicUnboundgenerateConstraints makeGhcSpecspecificationQualifiers cgInfoFInfo getGhcInfo pprintCBsMbEnvliquid runLiquidResponseCommandStatesCountsMbEnvhandlerinitial transposeintCSizecSizeIntmkPtr isNullPtrfpLenpLenderefeqPtrplusminustimeseqneqleqgeqltgt liquidAssertB liquidAssert liquidAssume liquidAssumeB liquidErrorcrashforcechooseisEvenisOdd safeZipWith==>mk_alt maybeNarrowBindingtoCNamemkHObj unpackHObj showStgType showFFIType typeTyCon insertRetAddr ret_addr_arg getPrimTyOfprimTyDescCharshouldTickBindaddTickLHsExprLetBodytickSameFileOnly MixEntry_TMunTMFreeVars TickishType ProfNotesHpcTicks Breakpoints SourceNotes TickTransEnvTTEfileNamedensity tte_dflagsdeclPathinScope blackListthis_mod tickishTypeTickTransStateTT tickBoxCount mixEntries breakCountbreaks uniqSupply TickDensityTickForCoverageTickForBreakPointsTickAllFunctionsTickTopFunctionsTickExportedFunctions TickCallSitesguessSourceFile mkModBreakswriteMixEntries mkDensityshouldTickPatBindaddTickLHsBindsaddTickLHsBindbindTickaddTickLHsExpraddTickLHsExprRHSaddTickLHsExprEvalInneraddTickLHsExprNeverisGoodBreakExpr isCallSiteaddTickLHsExprOptAltaddBinTickLHsExpr addTickHsExpr addTickTupArgaddTickMatchGroup addTickMatch addTickGRHSs addTickGRHSaddTickGRHSBody addTickLStmtsaddTickLStmts' addTickStmtaddTickaddTickStmtAndBindersaddTickHsLocalBindsaddTickHsValBindsaddTickHsIPBinds addTickIPBindaddTickSyntaxExpr addTickLPataddTickHsCmdTop addTickLHsCmd addTickHsCmdaddTickCmdMatchGroupaddTickCmdMatchaddTickCmdGRHSsaddTickCmdGRHSaddTickLCmdStmtsaddTickLCmdStmts'addTickCmdStmtaddTickHsRecordBindsaddTickArithSeqInfoliftLcoveragePassesnoFVsgetStatesetStategetEnvwithEnv getDensity ifDensity getFreeVarsfreeVar addPathEntry getPathEntry getFileNameisGoodSrcSpan'isGoodTickSrcSpanifGoodTickSrcSpan bindLocals isBlackListed allocTickBox allocATickBox mkTickishallocBinTickBoxmkBinTickBoxHpcmkHpcPos hpcSrcSpanmatchesOneOfManymixHash$fMonadUniqueTM$fHasDynFlagsTM $fMonadTM$fApplicativeTM $fFunctorTMcatchIObindirlibdirdatadir libexecdir sysconfdir$fHasConfigConfig$fSerializeConfig$fSerializeSMTSolver$fNFDataVariancesrcSpanContext srcSpanInfo getFileLinegetNthppObligerrSpan pprSrcSpanpprRealSrcSpannestssepVcat blankLineppFullppReqInContextppPropInContexterrSavedppVar$fFromJSONTError$fToJSONTError$fFromJSONSrcSpan$fToJSONSrcSpan$fFromJSONRealSrcSpan$fToJSONRealSrcSpan$fExceptionTError $fShowTError$fPPrintTError$fPPrintSrcSpan $fOrdTError $fEqTError$fNFDataParseError $fPPrintOblig $fNFDataOblig $fShowOblig $fOrdCtxError $fEqCtxError$fPPrintParseError sort_alts mkPatSynCase mkDataConCase mkPArrCase mkFailurePair dsOverLit'conversionNameswarnAboutOverflowedLiterals litValKeyNeedParsEqnSetEqnNo WarningPatuntidy_exhaustiveuntidy_messageuntidy_no_pars untidy_parsuntidy untidy_conpars untidy_litcheck'split_by_literalsprocess_explicit_literalsprocess_literalsconstruct_literal_matrixremove_first_column_litsplit_by_constructorfirst_column_only_varsno_need_default_caseneed_default_caseconstruct_matrixremove_first_column make_row_varshash_xmake_row_vars_for_constructor compare_cons remove_dups get_used_cons isConPatOut remove_dups' get_used_litsget_used_lits'get_litmb_negget_unused_consall_vars remove_var firstPatNis_conis_litis_var is_var_con is_var_lit isInfixConis_nilis_list return_list make_listmake_conmake_whole_contidy_eqnmight_fail_patmight_fail_lpat tidy_lpattidy_pat tidy_lit_pattidy_con matchGuards isTrueLHsExpr ds_lhs_binds dsLHsBinddsHsBind makeCorePair dictAritydsSpecs specOnInline sccEvBindsdsEvTerm dsEvTypeable dsEvCallStack dsTcCoercionds_tc_coercion ConArgPatsmatchOneConLikecompatible_pats same_fieldsselectConMatchVars conArgPatsPatGroupPgAnyPgConPgSynPgLitPgNPgNpKPgBangPgCoPgViewPgOverloadedList matchCheckmatchCheck_reallymaximum_output dsShadowWarndsIncompleteWarn pp_contextppr_patsppr_shadow_patsppr_incomplete_patsppr_constraintppr_eqn matchEmptymatchVariables matchBangs matchCoercion matchViewmatchOverloadedListdecomposeFirstPatgetCoPat getBangPat getViewPatgetOLPat tidyEqnInfotidy1 tidy_bang_patpush_bang_into_newtype_arggroupEquationssubGroup sameGroup viewLExprEqpatGroupDsCmdEnvarr_id compose_idfirst_idapp_id choice_idloop_idmkCmdEnvdo_arr do_composedo_firstdo_app do_choicedo_loop do_premap mkFailExpr mkFstExpr mkSndExpr coreCaseTuple coreCasePair mkCorePairTymkCorePairExprmkCoreUnitExpr envStackType splitTypeAt buildEnvStack matchEnvStackmatchEnv matchVarStackmkHsEnvStackExprdsLCmddsCmd dsTrimCmdArgdsfixCmd trimInputdsCmdDo dsCmdLStmt dsCmdStmtdsRecCmd dsfixCmdStmts dsCmdStmts matchSimplys leavesMatchreplaceLeavesMatchreplaceLeavesGRHSfoldbcollectPatBinderscollectPatsBinderscollectlcollectEvBinders add_ev_bndrcollectLStmtsBinderscollectLStmtBinderscollectStmtBindersdsInnerListComp dsTransStmt deListComp deBindComp dfListComp dfBindComp mkZipBind mkUnzipBind dePArrComp dePArrParCompdeLambdamkLambda parrElemType dsMcStmtsdsMcStmt matchTuple dsMcBindStmtdsInnerMonadComp mkMcUnzipMmkSptEntryName dsIPBinds ds_val_bind dsStrictBindstrictMatchOnly findFielddsExplicitListspanTail dsArithSeqdsDohandle_failure mk_fail_msgwarnDiscardedDoBindings badMonadBind dsImpSpecscombineEvBindsaddExportFlagsAndRulesdsRule unfold_coercedsVect throwErrors getWarnings clearWarnings logWarnings hscDesugar' getHscEnvhandleWarnings ioMsgMaybeCoreMkC GenSymBindrepTopPrepTopDshsSigTvBindersrepTyClDrepRoleD repDataDefn repSynDecl repFamilyDeclrepFamilyDecls mk_extra_tvs repLFunDeps repLFunDep repFamilyInforepInstD repClsInstDrepStandaloneDerivD repTyFamInstD repTyFamEqnrepDataFamInstDrepForD repCCallConv repSafetyrepFixDrepRuleD ruleBndrNames repRuleBndrrepAnnD repAnnProvds_msgrepCin_subst mkGadtCtxt repBangTy repDerivsrep_sigs rep_sigs'rep_sig rep_ty_sig rep_inlinerep_specialiserep_specialiseInst repInline repRuleMatch repPhases addTyVarBindsaddTyClTyVarBindsrepTyVarBndrWithKind repLContext repContextrepLTysrepLTyrepTyrepTyLitrepLKindrepNonArrowLKindrepNonArrowKindrepRole repSplicerepLEsrepLErepE repMatchTup repClauseTup repGuardsrepLGRHS repFieldsrepLStsrepStsrepBinds rep_val_binds rep_binds rep_binds'rep_bind repLambdarepLPsrepLPrepP sort_by_locde_loc mkGenSymsaddBinds dupBinder lookupLBinder lookupBinder lookupLOcc lookupOcc globalVar lookupType wrapGenSyms occNameLitunCrep2dataCon'dataConrepPlitrepPvarrepPtuprepPunboxedTuprepPconrepPrec repPinfix repPtilderepPbang repPaspatrepPwildrepPlistrepPview repVarOrConrepVarrepConrepLitrepApprepLam repLamCaserepTup repUnboxedTuprepCond repMultiIfrepLetErepCaseErepDoErepComp repListExp repSigExp repRecCon repRecUpd repFieldExp repInfixApp repSectionL repSectionR repGuarded repNormal repLNormalGE repNormalGErepPatGE repBindStrepLetSt repNoBindStrepParStrepFrom repFromThen repFromTo repFromThenTorepMatch repClauserepValrepFunrepData repNewtyperepTySynrepInstrepClassrepDeriv repPragInl repPragSpecrepPragSpecInlrepPragSpecInst repPragRule repPragAnnrepFamilyNoKind repFamilyKind repTySynInstrepClosedFamilyNoKindrepClosedFamilyKind repTySynEqn repRoleAnnotD repFunDeprepProtorepCtxt repConstr repTForallrepTvarrepTapprepTappsrepTSig repTequalityrepTPromotedListrepTLit repNamedTyCon repTupleTyConrepUnboxedTupleTyCon repArrowTyCon repListTyConrepPromotedTyConrepPromotedTupleTyConrepPromotedNilTyConrepPromotedConsTyCon repPlainTV repKindedTVrepKVarrepKCon repKTuple repKArrowrepKListrepKApprepKAppsrepKStarrepKConstraint repLiteral mk_integer mk_rational mk_stringrepOverloadedLiteralmk_lit repGensymrepBindQ repSequenceQrepListcoreList coreList'nonEmptyCoreList coreStringLit coreIntLitcoreVar notHandledL notHandledthSynthLibqqLib mkTHModulelibFunlibTcthFunthTcthConqqFunfieldExpTyConName patTyConNamefieldPatTyConName expTyConNametyVarBndrTyConNamematchTyConNameclauseTyConNamefunDepTyConName predTyConName returnQName bindQName sequenceQName newNameName mkNameName mkNameLName charLName stringLName integerLName intPrimLName wordPrimLNamefloatPrimLNamedoublePrimLName rationalLNamelitPNamevarPNametupPNameunboxedTupPNameconPName infixPName tildePName bangPNameasPName wildPNamerecPName listPNamesigPName viewPName fieldPatName matchName clauseNamevarENameconENamelitENameappEName infixEName infixAppName sectionLName sectionRNamelamEName lamCaseENametupENameunboxedTupEName condEName multiIfENameletEName caseENamedoEName compEName fromEName fromThenEName fromToENamefromThenToEName listENamesigEName recConEName recUpdEName staticEName fieldExpName guardedBName normalBName normalGEName patGEName bindSNameletSName noBindSNameparSNamefunDNamevalDName dataDName newtypeDName tySynDName classDName instanceDNamestandaloneDerivDNamesigDNamedefaultSigDName forImpDName pragInlDName pragSpecDNamepragSpecInlDNamepragSpecInstDName pragRuleDName pragAnnDNamefamilyNoKindDNamefamilyKindDName dataInstDNamenewtypeInstDNametySynInstDNameclosedTypeFamilyKindDNameclosedTypeFamilyNoKindDName infixLDName infixRDName infixNDNameroleAnnotDNamecxtName isStrictName notStrictName unpackedName normalCNamerecCName infixCName forallCNamestrictTypeNamevarStrictTypeName forallTNamevarTNameconTName tupleTNameunboxedTupleTName arrowTName listTNameappTNamesigTName equalityTNamelitTName promotedTNamepromotedTupleTNamepromotedNilTNamepromotedConsTName numTyLitName strTyLitName plainTVName kindedTVName nominalRNamerepresentationalRName phantomRName inferRNamevarKNameconKName tupleKName arrowKName listKNameappKName starKNameconstraintKName cCallName stdCallName cApiCallName primCallNamejavaScriptCallName unsafeNamesafeNameinterruptibleNamenoInlineDataConNameinlineDataConNameinlinableDataConNameconLikeDataConNamefunLikeDataConNameallPhasesDataConNamefromPhaseDataConNamebeforePhaseDataConName ruleVarNametypedRuleVarName funDepName typeFamName dataFamName tySynEqnNamevalueAnnotationNametypeAnnotationNamemoduleAnnotationNamematchQTyConNameclauseQTyConNamestmtQTyConName conQTyConNamestrictTypeQTyConNamevarStrictTypeQTyConNamefieldExpQTyConNamefieldPatQTyConNamepredQTyConNameruleBndrQTyConNametySynEqnQTyConName roleTyConName expTyConKey matchTyConKeyclauseTyConKey qTyConKey expQTyConKey decQTyConKey patTyConKeymatchQTyConKeyclauseQTyConKey stmtQTyConKey conQTyConKey typeQTyConKey typeTyConKey decTyConKeyvarStrictTypeQTyConKeystrictTypeQTyConKeyfieldExpTyConKeyfieldPatTyConKey nameTyConKey patQTyConKeyfieldPatQTyConKeyfieldExpQTyConKeyfunDepTyConKey predTyConKey predQTyConKeytyVarBndrTyConKey decsQTyConKeyruleBndrQTyConKeytySynEqnQTyConKey roleTyConKey tExpTyConKey returnQIdKey bindQIdKeysequenceQIdKey liftIdKey newNameIdKey mkNameIdKeymkNameG_vIdKeymkNameG_dIdKeymkNameG_tcIdKey mkNameLIdKey unTypeIdKey unTypeQIdKeyunsafeTExpCoerceIdKey charLIdKey stringLIdKey integerLIdKey intPrimLIdKeywordPrimLIdKeyfloatPrimLIdKeydoublePrimLIdKeyrationalLIdKeyliftStringIdKey litPIdKey varPIdKey tupPIdKeyunboxedTupPIdKey conPIdKey infixPIdKey tildePIdKey bangPIdKeyasPIdKey wildPIdKey recPIdKey listPIdKey sigPIdKey viewPIdKey fieldPatIdKey matchIdKey clauseIdKey varEIdKey conEIdKey litEIdKey appEIdKey infixEIdKey infixAppIdKey sectionLIdKey sectionRIdKey lamEIdKey lamCaseEIdKey tupEIdKeyunboxedTupEIdKey condEIdKey multiIfEIdKey letEIdKey caseEIdKeydoEIdKey compEIdKey fromEIdKeyfromThenEIdKey fromToEIdKeyfromThenToEIdKey listEIdKey sigEIdKey recConEIdKey recUpdEIdKey staticEIdKey fieldExpIdKey guardedBIdKey normalBIdKey normalGEIdKey patGEIdKey bindSIdKey letSIdKey noBindSIdKey parSIdKey funDIdKey valDIdKey dataDIdKey newtypeDIdKey tySynDIdKey classDIdKeyinstanceDIdKey sigDIdKey forImpDIdKey pragInlDIdKeypragSpecDIdKeypragSpecInlDIdKeypragSpecInstDIdKeypragRuleDIdKey pragAnnDIdKeyfamilyNoKindDIdKeyfamilyKindDIdKeydataInstDIdKeynewtypeInstDIdKeytySynInstDIdKeyclosedTypeFamilyKindDIdKeyclosedTypeFamilyNoKindDIdKey infixLDIdKey infixRDIdKey infixNDIdKeyroleAnnotDIdKeystandaloneDerivDIdKeydefaultSigDIdKeycxtIdKey isStrictKey notStrictKey unpackedKey normalCIdKey recCIdKey infixCIdKey forallCIdKey strictTKey varStrictTKey forallTIdKey varTIdKey conTIdKey tupleTIdKeyunboxedTupleTIdKey arrowTIdKey listTIdKey appTIdKey sigTIdKeyequalityTIdKey litTIdKeypromotedTIdKeypromotedTupleTIdKeypromotedNilTIdKeypromotedConsTIdKey numTyLitIdKey strTyLitIdKey plainTVIdKey kindedTVIdKey nominalRIdKeyrepresentationalRIdKey phantomRIdKey inferRIdKey varKIdKey conKIdKey tupleKIdKey arrowKIdKey listKIdKey appKIdKey starKIdKeyconstraintKIdKey cCallIdKey stdCallIdKey cApiCallIdKey primCallIdKeyjavaScriptCallIdKey unsafeIdKey safeIdKeyinterruptibleIdKeynoInlineDataConKeyinlineDataConKeyinlinableDataConKeyconLikeDataConKeyfunLikeDataConKeyallPhasesDataConKeyfromPhaseDataConKeybeforePhaseDataConKeytExpDataConKey funDepIdKey typeFamIdKey dataFamIdKey tySynEqnIdKey quoteExpKey quotePatKey quoteDecKey quoteTypeKey ruleVarIdKeytypedRuleVarIdKeyvalueAnnotationIdKeytypeAnnotationIdKeymoduleAnnotationIdKeyunStack mbSrcSpan spanSrcSpan maybeSpan $fShowSpan exprFreeVars exprReadVars exprLetVars exprLiterals extendEnvbindings$fCBVisitableAltCon$fCBVisitable(,,)$fCBVisitableExpr$fCBVisitableBind$fCBVisitable[] CallGraphcallGraphRanks makeCallGraphbindEqnsLiterrlin annotTokeniseclassifyjoinLCodeunLCommentTransform AnnotationAlitSpanshsannot' spanAnnotspanLineinRangetokeniseWithCommentTransform tokenSpansplusLocrenderAnnotTokenrenderTypAnnotrenderErrAnnotrenderLinAnnot lineStringinsertAnnotAnchorsstitchsplitSrcAndAnns tokenModule annotParse parseLines ppAnnotTyp ppAnnotErrallProg $fShowAnnMapTrEnvTr_locTEinlineLoopBreakerinlineFailCases isTypeError outerScTr isCaseArg innerScTrscTransinitEnvtransPgtransBd transExpr isNonPolyRecnonPolycollectNonRecLets appTysAndIdstrans makeTrans mkRecBindsmkSubs mkFreshIdsfreshInt freshUniquemkAlive mapNonRecmapBndmapExprmapAltmapBdM$fFreshableVar$fFreshableUnique$fFreshableIntnormalizeTopBindnormalizeForAllTysfreshNormalVarAnfEnvaeVarEnv aeSrcSpanDsMWDsST st_expandflagst_bindsDsMrunDsMmodGutsTypeEnvnormalizeTyVarssubst normalizeBind normalizeNameshouldNormalizeaddnormalizeLiteral normalizeexpandDefaultCaseexpandDefaultCase' cloneCase sortCases emptyAnfEnv lookupAnfEnv extendAnfEnvat rtc_pvarsSymbol $fShowStratum$fShowDataDecl$fTyConableRTyCon ppEnvCurrent_ppEnvPrintPredsdropAppisApppdTruepdAnd mapQualBodyisPropisClassOrSubClass isTauto_ureft ppTy_ureftppr_reftppr_strpToRefemapReftemapRefmapRefM mapBotRef mapBindRefstripAnnotationsstripAnnotationsRefmapRBase makeLTypeppr_pvar $fMonoidRTEnv$fSymbolicModuleName$fSymbolicModName $fShowModName $fNFDataCinfo$fNFDataTError $fNFDataREnv $fPPrintPVar $fPPrint[]$fPPrintStratum$fReftablePredicate$fSubableRType $fSubableRef$fSubableUReft$fReftableUReft $fUReftable()$fUReftableUReft $fReftable[]$fSubableStratum $fOrdDataDecl $fEqDataDecl $fShowRTyCon$fPPrintRTyCon$fFixpointCinfo$fFixpointRTyCon $fEqRTyCon$fTyConableLocated$fTyConableSymbol $fMonoid[]$fNFDataStratum $fNFDataRef $fNFDataRType$fShowTyConInfo$fNFDataTyConInfo$fDefaultTyConInfo$fNFDataRTyCon$fSymbolicRTyVar$fNFDataRTyVar $fNFDataUReft$fSubableQualifier $fSubablePVar $fMonoidUReft$fNFDataPredicate$fNFDataPVKind$fHashablePVar $fNFDataPVar $fOrdPVar$fEqPVar $fShowLMap$fMonoidLogicMap$fHasConfigGhcSpec$fHasConfigGhcInfo$fBifunctorDefKVP emptyOutput ppr_tyvarppr_tyvar_short ppRefArgsppRefSym $fPPrintRef$fPPrintRTyVar $fMonoidMSpec $fShowMSpec $fPPrintMSpec$fBifunctorMSpec $fShowDataCon$fPPrintDataCon$fSymbolicDataCon$fNFDataKVProf$fPPrintKVProf$fPPrintKVKind$fNFDataKVKind$fHashableKVKind$fMonoidOutput $fNFDataAnnot$fNFDataAnnInfo$fMonoidAnnInfo $fSubableBody $fSubableDef$fSubableMeasure$fShowCMeasure$fPPrintCMeasure $fShowMeasure$fPPrintMeasure $fPPrintDef $fPPrintBody$fBifunctorMeasure trueRefTypetrueRefrefreshRefType refreshReffreshSym$fFreshablemRType$fFreshablem[]$fFreshablemUReft$fFreshablemReft$fFreshablem[]0$fFreshablemExpr$fFreshablemSymbolallSVarsnoSVarnoUpdate updateFin updateDiv$fSubStratumRType$fSubStratumAnnot$fSubStratum[]$fSubStratum(,)$fSubStratumStratum maybeParen$fPPrintErrMsgpprAnnInfoBindspprAnnInfoBindpprXOTppTyConB ppr_rsubtypeppExists ppAllExprppReftPs ppr_dbind ppr_rty_fun ppr_rty_fun' ppr_forall ppr_symbolsppr_cls ppr_pvar_def ppr_pvar_kindppr_name ppr_pvar_sortppr_refdot $fPPrintUReft $fShowAnnInfo$fPPrintAnnInfo $fPPrintAnnot $fPPrintClass $fPPrintType $fPPrintTyCon $fPPrintName$fPPrintSourceError#Language.Fixpoint.Types.RefinementsReft$fRefTypablecSymbolr$fExpressionVar $fEqPredicate $fFixpoint[]$fReftableRTypeFreeVareqRSorteqpdrPredaddPdsnlzPpprt_rawstrengthenRefTypestrengthenRefType_meets expandRApp rtPropToprtPropPVmkRTProppvArgs isNumeric addNumSizeFun subsTyVars subsTyVarsubsFree subsFreessubsFreeRAppTymkRApp refAppTyToFun subsFreeRefofType_ isBaseDataCon appSolRefa tyConFTyContypeSortForAll typeSortFungrabArgsexpandProductType mkProductTy rTyVarSymbolmkDType mkDecrFun cmpLexRef makeLexReftmakeTyConVariancedataConsOfTyCon $fPPrintREnv $fShowRef $fShowRType $fPPrintRType $fShowUReft $fShowRTyVar$fRefTypableRTyConRTyVarr $fShowRTAlias$fSubsTytvtyRef$fSubsTySymbolRTypeRType$fSubsTySymbolRTypeLocated$fSubsTyRTyVarRTypeRType$fSubsTyRTyVarRTyVarRType$fSubsTyRTyVarRTypeRType0$fSubsTyRTyVarRTypeRType1$fSubsTyRTyVarRTypeRTyCon$fSubsTytvtyPVar$fSubsTytvtyPVKind$fSubsTytvtyReft$fSubsTytvty()$fHashableRTyCon $fOrdRTyCon$fHashableRTyVar $fOrdRTyVar $fEqRTyVar $fEqRType$fFreeVarLocatedSymbol$fFreeVarRTyConRTyVar$fFixpointClass $fReftableRef $fMonoidRef $fMonoidRType substRConmkRTyCon rpredType predRTyCon wpredRTyCon symbolRTyCon substPredpad substPredP splitRPvar freeArgsPs freeArgsPsRefmeetListWithPSubsmeetListWithPSubsRefmeetListWithPSubmeetListWithPSubRefpredName wpredName symbolType predFTyCon$fShowDataConP$fPPrintDataConP $fShowTyConP$fPPrintTyConPmaxAritywiredTyDataConslistTyDataConstupleTyDataConsmkpsmkps_ $fNFDataCGEnv pprCGInfoconjoinInvariantShiftconjoinInvariant insertFEnv$fNFDataCGInfo $fNFDataWfC $fNFDataSubC $fNFDataFEnv$fPPrintCGInfo$fSubStratumSubC $fPPrintWfC $fPPrintSubC $fShowCGEnv $fPPrintCGEnv$fMonoidLConstraintSimplifysimplifyinlineLState symbolMapmkErrorltceLogicMrunMisBool simplesymbolthrowcoreToPdcoreToLg checkBoolAlts coreToIte toPredApp toLogicApp eVarWithMapbrelsbops splitArgs tomaybesymboltosymbol tosymbol'makesubmkImkRmkS ignoreVarsimpleSymbolVar' isErasableisANFisDead isUndefined$fSimplify(,,)$fSimplifyBind$fSimplifyExpr$fApplicativeLogicM$fFunctorLogicM $fMonadLogicM pprint_bsyms makeBoundType partitionPsisPApp toUsedPVarsunProp toUsedPVarmakeRef$fBifunctorBound $fPPrintBound $fShowBound $fEqBound$fHashableBoundIsFreeisFree splitRType splitUReftsplitRef splitReft splitPred $fIsFreex updREnvLocal filterREnv deleteREnv memberREnv globalREnvrenvMaps localsREnv globalsREnvaddBind addClassBindaddCGEnv normalizeVVsetBind'$fFreshableStateTInteger$fPPrintCtxError0e2u tidyValueVarstidyVV tidySymbolstidyLocalRefas tidyDSymbols tidyFunBinds tidyTyVars bindersTxtyVars subsTyVarsAllfunBinds ppSpecTypeErr $fException[]$fPPrintCtxError$fResultFixResult$fResultTError $fResult[]$fResultTError0AEnvAE ae_axiomsae_bindsae_lmap ae_consts ae_globalsae_varsae_embae_litsae_indexae_sigs ae_targetae_recs ae_assertae_cmbae_isHOProvable expProofs expProofsCaseexpandCasesProof makeDataCons makeCasesmakeDataConArgsexpandAutoProofnub' updateLMapmakeEnvironment makeQuerycheckEnvcheckVar makeAxioms unANFExprmakeGoalPredicatemakeRefinementmakeCtor makeCtor'makeVarmakeVar' makeLVar'varToPAxiomWithGuard makeGuard varToPAxiom initAEEnv addAssertrmAssertaddRecaddRecsaddVaraddVarsgetUniqfreshVar freshFilePath isBaseSortisFunctionType resultTypegrapArgsgrapInt canIgnoreisAutoisCasesisProof returnsProof$fProvable(,,)$fProvableExpr$fProvableBind meetErrorcheckDuplicateMeasuremakeDataConTypeextendresultTy noDummySymscombineDCTypes mapArgumens stitchArgspanicFieldNumMismatch panicDataConrefineWithCtorBodybodyPred $fMonoidSpecbaseGHC.BaseNothing makeRTypeBasemkReft bareTypePfTyConP$fInputableRType $fShowPspecPspecMeasAssmAsrtLAsrtAsrtsImptDDeclInclInvtIAliasAliasEAliasEmbedQualifDecrLVarsLazyHMeasInlineASizeHBoundPBoundPragmaCMeasIMeasClassRInstVariaArrowSymArrowFun ArrowPredcommentP simpleCommentnewlinePspecificationPparseWithErrorparseErrorError remParseError remLineColtoLogicP toLogicOnePangles stringLiteralbareArgP bareAtomPrefBindPrefPrefDefPoptBindPholePholeRefP refasHolePbbasePstratumP bstratumP bbaseNoAppPmaybeP bareTyArgPbareAtomNoAppPbareConstraintP constraintPconstraintEnvPrrTybareAllSbareAllPtyVarIdP predVarDefsP predVarDefP predVarIdPbPVar predVarTypeP mkPredVarTypexyParrowPbareFunP dummyBindPbbindP bareArrowisPropBareTypeisHPropBareTypeisPrimBareType getClassesdummyPsymsP dummyRSort predicatesP predicate1PmmonoPredicatePmonoPredicatePmonoPredicate1P predVarUsePfunArgsPboundPbRPropbRVarbLstbTupbConbAppTy reftUReft predUReft dummyReft dummyTyIdmkSpecspecP reservedTokenspaces1pragmaPlazyVarP hmeasurePhboundPinlinePasizeP decreaseP filePathP datavarianceP variancePtyBindsPtyBindP termBareTypeP termTypeP invariantP invaliasP genBareTypePembedPaliasPealiasPrtAliasPaliasIdPmeasureP cMeasureP iMeasureP instancePclassPrawBodyPtyBodyP locUpperIdP' upperIdP'condIdP'binderPgrabs measureDefP measurePatPtupPatPconPatPconsPatPnilPatPnullaryConPatPmkTupPatmkNilPat mkConsPat tupDataCondataConFieldsP dataConFieldP predTypeDDPdataConP dataConNameP dataSizeP dataDeclP dataDeclSizeP dataDeclFullPgrabUpto betweenMany specWraps liquidBeginP liquidEndP$fInputableMeasuremakeDictionaryName dropBoundLikeisBoundLikePredisImp simplifyLenCtxtidyErrContexttidyCtx stripReft stripRTypetidyREnv expandFix tidyTemps niceTempsChkItvDepsstartendbinder meetSpanslineDiff diffLinesgetShiftsetShift$fToJSONSourcePos sliceSaved sliceSaved' assumeSpecdiffVarssigVars globalDiffisDiffthinWithcoreDeps dependsOn txClosure filterBindsspecDefsspecSigscoreDefscoreDeflineSpancatSpansbindFilevarFile exprSpansaltSpans isJunkSpan lineDiff' diffShifts loadResult adjustOutput adjustTypes adjustResult errorsResult adjustErrors adjustSrcSpan isCheckedSpanisCheckedRealSpan adjustSpan adjustReal checkedItvlinelineEifM$fFromJSONOutput$fToJSONOutput$fFromJSONAnnInfo$fToJSONAnnInfo$fFromJSONHashMap$fToJSONHashMap $fFromJSONDoc $fToJSONDoc$fFromJSONFixResult$fToJSONFixResult$fFromJSONSourcePos $fFunctorDiff $fShowDefAssoc renderPandoc renderDirect top'n'tailmkAnnMaprefTokentokAnnotvimAnnot_anns$fToJSONStatusAnnot1A1identannrowcol AnnErrorsAnnTypesAscmkBotswriteFilesOrStrings generateHtml renderHtml renderPandoc' checkExitCode pandocCmd pandocPreProc htmlHeader htmlClosecssHTMLmkStatus mkAnnMapErrcinfoErr mkAnnMapTypmkAnnMapBinders closeAnnotscloseAfilterA collapseApickOneAtrimLiquidAnnottokBodyisMeasisDataisTypeisIncl spacePrefix tokeniseSpec tokeniseSpec' chopAltDBGvimBindannTypesinsi$fToJSONAnnMap $fToJSONAssoc $fToJSON[] $fToJSONLoc$fToJSONAnnot1canonicalizePathsGHC.IOFilePathCErrordefaultMaxParams defaultPort cmdArgsRun' withSmtSolver findSmtSolver fixConfig canonicalize fixDiffCheckenvCfg copyright withPragma parsePragmaresultWithContextwriteCheckVars writeResultresDocs errToFCrash addErrors$fFixpointFixResult setModule mkExprAliastxtx'txQuantmexprtxEApptxEApp' cmpSymboldropModuleNamesAndUnique$fTransformableBody$fTransformableDef$fTransformableMeasure$fTransformableExpr$fTransformableEither$fTransformableReft$fTransformableUReft$fTransformableRType$fTransformableTInline$fTransformableDataConP$fTransformable[] addSymSort addSymSortRefaddSymSortRef' spliceArgsNameStringlookupGhcThing' symbolLookupwiredInsymbolLookupEnv tryPropTyCon isTupleDClookupGhcDataCon'$fGhcLookupName$fGhcLookupLocated txPredReft expandEApp expandAppExStemappmap expToBindT expToBindReftgetBinds addExistsaddExist expToBindRef expToBind expToBindParg expToBindExpr freshSymbol axiomTypeufType Simplifiable makeAxiomTypefindAxiomNames isAxiomName defAxiomsunANF$fSimplifiableBind$fSimplifiableExpr freeSymbols mapTyRVar varFunSymbolisFunVar plugHolesaddRefs maybeTrue killHolesaddSymisCon$fResolvable()$fResolvablePVar$fResolvablePredicate$fResolvableReft$fResolvableUReft$fResolvableSort$fResolvableSymbol$fResolvableLocated$fResolvableExpr$fResolvableQualifier$fResolvable[]exprArgmapMPvartxParamtxPvarpredMaprtypePredBindsofBRType matchTyConfailRTAliasAppexpandRTAliasApp bareTCApptyAppexpandRTypeSynonyms makeConTypes' dataConSpec' ofBDataDeclgetPsSig getPsSigPsaddps ofBDataConmakeTyConEmbeds' checkRType checkMeasurescheckQualifierscheckQualifiercheckRefinedClassescheckDuplicateFieldNamesfirstDuplicatecheckInvcheckIAl checkIAlOnecheckRTAliases checkBindcheckDupIntersectcheckDuplicatecheckDuplicateRTAlias checkMismatchtyCompaterrTypeMismatch checkAppTys checkTcAritycheckAbstractRefs checkReft checkMeasure checkMBodycheckMBodyUnify checkMBody'checkClassMeasures expandMeasuremakeMeasureInline updateInlinesmakeMeasureDefinitionmakeMeasureSelector mkMeasureDConmkMeasureDCon_ measureCtors mkMeasureSort isSimpleType varSpecTypemakeHaskellBoundtoBoundcapitalizeBoundexpandMeasureDefexpandMeasureBodyNodeGraph AliasTable makeRTAliases makeREAliases graphExpandbuildAliasTablefromAliasSymbolbuildAliasGraphbuildAliasNodecheckCyclicAliasesgenExpandOrderordNubbuildTypeEdgesbuildExprEdges varSymbols varsAftergrepClassAsserts makeLocalSpecmakeSpec lookupIds mkVarSpec makeIAliases'makeInvariants'makeSpecDictionarymakeSpecDictionaryOnemkBoundconstraintToLogicOnesubConstraintToLogicOne combinationsforallExprRefTypersplitWbsplitWbsplitW'splitsSWithVariancersplitsSWithVariancebsplitSrsplitSsplitfWithVariancerHolesplitsCWithVariancersplitsCWithVariancebsplitC addLhsInv checkStratumbsplitC'unifyVVrsplitCforallExprReftforallExprReft_forallExprReftLookup predsUnify freshTy_typeaddKVars makeDecrIndex consCBTop varTemplatecconsEinstantiatePredsinstantiateStrataconsE cconsFreshE freshPredRefargExpr strengthenS varRefType otherwiseexprLocTemplateAssertedAssumedInternalUnknownconsAct addCombinemakeDataConTypesmakeAutoDecrDataConslenOfmakeSizedDataConsmergeDataConTypes refreshHoles refreshHoles'extract refreshArgs' strataUnifymeasEnvassmgrtyassmGrtygrtyTopinitCGI coreBindLits freshTy_exprfreshTy_reftypeisKut specTypeKVarstrueTyofType'fixTyrefreshArgsTop refreshArgsrefreshArgsSubmakeDecrIndexTyrecType checkIndex makeRecTypeunOConsmergecondition safeLogIndex checkHintcheckValidHint consCBLettcondconsCBSizedTysconsCBWithExprs makeFinTy makeTermEnvs addObligationconsCBconsBindnoHoles killSubst killSubstReftdefAnn addPToEnvextender unTemplateaddPostTemplatesafeFromAssertedcconsE'splitConstraints substStrata cconsLazyLetcastTy isClassConCo checkUnbound dropExistsdropConstraints cconsCase refreshTy refreshVV refreshVVRefcaseEnvaltReftunfoldRinstantiateTysinstantiatePvs checkTyConcheckFuncheckAllcheckErrvarAnn??= varRefType' singletonRefttopMeet exprRefType exprRefType_ bindRefType_extendγ isGenericReplaceM ReplaceState ReplaceEnvRE_re_env_re_fenv_re_emb_re_tyilistLMap postProcess ghcSpecEnv makeGhcSpec' addProofTypemakeExactDataCons varInModule makeExact makeGhcAxioms emptySpec makeGhcSpec0 makeGhcSpec1 makeGhcSpec2 makeGhcSpec3 makeGhcSpec4makeGhcSpecCHOP1makeGhcSpecCHOP3makeGhcSpecCHOP2 txRefSort'atLoc'replaceLocalBinds traverseExprs traverseBindswithExtendedEnvvarShortSymbolreplaceLocalBindsOne refTypeQuals refTopQualsmkPQualmkQual mkQualNEWenvSort targetFInfo targetQuals getGhcInfo' runLiquidGhcparseRootTargetfindAndLoadTargets allDepNamesdeclNameString compileCFilesmakeMGIModGuts makeLogicMap classCons derivedVars derivedVs unfoldDepexprDep importVars definedVarsgetSpecs getPatSpec getRealSpectransParseSpecs parseSpec specParser moduleSpec moduleHquals moduleImports moduleFile specIncludesreqFile errMsgErrors$fResultSourceError$fPPrintTargetVars $fShowGhcInfo$fPPrintGhcInfo$fPPrintGhcSpec checkManycheckOne checkOne'actOrDiehandle liquidOnedumpCs pprintMany checkedNamesprunesolveCscinfoUserErrorResOkResFail$fSerializeStatus runLiquid'