,23      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ _ ` a b c d e f gh i j k lm n o pqrstuvwxyz{|}~      !"#$%&'()*+,-./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#{#|#}#~########################################$$$$$$$%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''((())))))))))))******+++,-.. . . . . ../0112222222233333 3!3"3#3$3%3&4'4(4)4*4+4,4-4.4/404142434445464748494:4;4<4=4>5?5@6A6B6C6D6E6F6G7H7I7J8K8L8M8N8O8P8Q8R8S8T8U8V9W9X9Y: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?{?|?}?~?@@AAAAABBBCDEFGHHHHHHHHIIIIIIIIIIIIIIIIIIIIIJNoneF !  ! !  !NoneF1Decide 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.o%     & !"%&%&V %     & !"NoneF.'()*+,-./0123456789:;<=>?@AB#$%&CDEFGHIJKLM'NO2'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO201'()*+,435678<=?2>@AB:9CDE;HGIJKLMF-./NO)'()*+,-./0123456789:;<=>?@AB#$%&CDEFGHIJKLM'NONoneFHMPQ(R)*STUVWX+YZ PQRSTUVWXYZ PQWXTUVZYRSPQ(R)*STUVWX+YZNoneF[\],-[\][\][\],- NoneF^_./0123`45abcd6789^_`abcd^_a`bcd^_./0123`45abcd6789 NoneF:ef;<=>?efef:ef;<=>?NoneF.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcgdefghgg$@ JIHGFEDCBAKLMNOPQRSTUVWXYZ[\]^_`abcgdefgh NoneF8ijklmnopqrstuvwxyz{|}~hhh1ijklmnopqrstuvwxyz{|}~h NoneFijk'the desugared rhs of the bind statementijkijkijkNoneF"#$l"#$Pl$#"lP"#$l NoneFm"Main entry point to the desugarer.n"Main entry point to the desugarer.mnomnomnomnoNoneFlp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~qrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     pqrstuvwxyz{|}~pqrswxtuzy{v|}~kp      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~qrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     NoneF= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS Safe-InferredF TUVWXY TUVWXYNoneFZThrow some errors.$Convert a typechecked module to Core [\]Z^_`a [\]Z^_`a Safe-Inferred+FNoneFNone !"24EFHMaMaV None+234EFMbcdefghijkl bcdefghijklNoneEFThe TagKey is the top-level binder, and Tag is a singleton Int list mnop mnopNoneF q3Separating literate files into code/comment chunks.r type strings error stringtBline number, total width of lines i.e. max (length (show lineNum)) Loc -> (Var, Type)List of error intervalsAFormats Haskell source code using HTML and mouse-over annotationsAFormats Haskell source code using HTML and mouse-over annotationsu"annotTokenise is absurdly slow: O( tokens x errors)vIThe code for classify is largely stolen from Language.Preprocessor.Unlit.w;Join up chunks of code/comment that are next to each other.3qxyz{|}rst     Whether to include anchors.1Whether input document is literate haskell or not3Haskell source code, Annotations as comments at endColoured Haskell source code.Whether to include anchors.!Function to refine comment tokens1Whether input document is literate haskell or notHaskell Source, AnnotationsColoured Haskell source code.~uvw          $qyxzz{|}rst     ~uvwNone24EF   NoneEF" !"#$%&'()*+,-./0123456789:;<=>?@" !"#$%&'()*+,-./0123456789:;<=>?@" !"#$%&'()*+,-./0123456789:;<=>?@" !"#$%&'()*+,-./0123456789:;<=>?@None*+-./02346BFvB6KVar Profile -----------------------------------------JCOutput ------------------------------------------------------------WCAnnotations -------------------------------------------------------`Measure Refinement: {v | p}aMeasure Refinement: {v | (? v)  = p }b Measure Refinement: {v | v = e }CConverting Results To Answers -------------------------------------CSource Information Associated With Constraints --------------------:INVARIANT : all Error constructors should have a pos fieldUnexpected PANIC!Refined Class/Interfaces ConflictTermination Error9Previously saved error, that carries over after DiffCheck5Illegal RTAlias application (from BSort, eg. in PVar)%Cyclic Refined Type Alias Definitions)Mismatch between Liquid and Haskell types#GHC error: parsing or type checkingUnbound symbol in specificationHaskell bad Measure errorMeasure sort errorIncompatible using errorUsing sort errorInvariant sort error$multiple specs for same binder error$multiple specs for same binder error#multiple alias with same name errorsort error in specificationsort error in specificationspecification parse errorliquid type errorliquid type errorliquid type errorIn the below, we use EMsg instead of, say, SpecType because the latter is impossible to serialize, as it contains GHC internals like TyCon and Class inside it.CError Data Type ---------------------------------------------------The type used during constraint generation, used also to define contexts for errors, hence in this file, and NOT in Constraint.hsCConstructor 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 callsERefined 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 E argument in  in the UReftR applies directly to any type and has semantics _independent of_ the data-type.)Abstract heap-refinement associated with ?$Abstract refinement associated with ? Parse-time "Obligation that proves constraints!Obligation that proves invariants"Obligation that proves termination;let LH match against the Haskell type and add k-vars, e.g. `x:_` see testsposHoles.hs#5For expression arguments to type aliases see testspos vector2.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 structureAGHC Type ConstructorPredicate ParametersB TyConInfoK?Abstract Predicate Variables ----------------------------------Q*Which Top-Level Binders Should be VerifiedZFIXME: WHAT IS THIS??[These are backwards, why??l&The following is the overall type for specificationsA obtained from parsing the target source and dependent librariesn0Asserted Reftypes eg. see include/Prelude.specoAssumed ReftypespUData Constructor Measure Sigs eg. (:) :: a -> xs:[a] -> {v: Int | v = 1 + len(xs) }q%Measure Types eg. len :: [a] -> Intr;Data Type Invariants eg. forall a. {v: [a] | len(v) >= 0}sData Type Invariant Aliasest,Predicated Data-Constructors e.g. see testsposMap.hsu,Predicated Type-Constructors eg. see testsposMap.hsvList of H free in spec and corresponding GHC var eg. (Cons, Cons#7uz) from testsposex1.hswUHow to embed GHC Tycons into fixpoint sorts e.g. "embed Set as Set_set" from includeDataSet.specx*Qualifiers in Source/Spec files e.g testspos qualTest.hsy5Top-level Binders To Verify (empty means ALL binders)z8Lexicographically ordered size witnesses for termination{5Lexicographically ordered expressions for termination|AVariables that should be checked in the environment they are used}-Binders to IGNORE during termination checking~-Binders to IGNORE during termination checkingConfiguration OptionsName's exported by the module being verifiedDictionary Environment=GHC Information : Code & Spec ------------------------------HPrinter ----------------------------------------------------------------HCommand Line Config Options --------------------------------------------source files to check%path to directory for including specsBcheck subset of binders modified (+ dependencies) since last checksupports real number arithmetic'check all binders (overrides diffcheck)/use native (Haskell) fixpoint constraint solverset of binders to checkIwhether to complain about specifications for unexported and unused valuesdisable termination check*disable warnings output (only show errors)%type all internal variables with truedisable case expandenable strata analysisdisable truing top level typescheck totality in definitions%disable prunning unsorted RefinementsAthe maximum number of parameters to accept when mining qualifiersBname of smtsolver to use [default: try z3, cvc4, mathsat in order]0drop module qualifers from pretty-printed names.)don't show subtyping errors and contexts.Ifind and use .cabal file to include paths to sources for imported modules#command-line options to pass to GHC..c files to compile and link against (for GHC)Accessors for RTyConHPPrint -----------------------------------------------------------------For debugging.KTyConable Instances -------------------------------------------------------9ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~QSR  ?@AB:;<=>730.,(&$# 89456912/2-2)*+94'24%2!"92 CD    KLMNOPHJIEFTUVWXYZ[\]^_`abcdeGWXRVUTSJKLMNOPQ}~y|{ztuvwxopqrsklmncdefghij_ba`YZ[\]^BIHGFEDCAkfghijABIHGFEDCJKLMNOPQRVUTSWXYZ[\]^_ba`cdefghijklmnopqrstuvwxy|{z}~g      )730.,(&$# 89456912/2-2)*+94'24%2!"92:;<=>?@ABCDEFGHJIKLMNOPQSRT UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                    None24F        ! " #        ! " #None 2346EFM $ % & ' ( ) * + , - . /  $ % & ' ( ) * + , - . /NoneF 0 1 0 1NoneF 2 3 4 5 2 3 4 5None+234EFM( 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 [$ 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 [None24BEF \*eta-expand CoreBinds with quantified types ] ^ _ ` a b c d e f g h \ i j k l m n o p q r s t ] ^ _ ` a b c d e f g h \ i j k l m n o p q r s t None234EFPrinting an Ordered List:Pretty Printing RefType ---------------------------------- uFrom GHC: TypeRep - v w u x y z { | } ~         - v w u x y z { | } ~   !None!"2346EFHM)Various functions for converting vanilla   to Spec6TBinders generated by class predicates, typically for constraining tyvars (e.g. FNum) ?Wrappers for GHC Type Elements -------------------------------- JRefTypable Instances ----------------------------------------------------- JReftable Instances ------------------------------------------------------- GSubable Instances -----------------------------------------------------          !"#$% &'() *+ ,-./0 123 4 5 6 789 : ; < 1   !"#$%&'()*+,-./0123456789:;<10897;  !4)-32&('%"$#*,+6:./15<           !"#$% &'() *+ ,-./0 123 4 5 6 789 : ; < "None+234EFB 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]`C Instantiate K with  0 ----------------------------------------------- replacePredsk is the main function used to substitute an (abstract) predicate with a concrete Ref, that is either an  or 4 type. The substitution is invoked to obtain the  resulting at predicate application sites in JK. The range of the K substitutions are fresh or true RefType0. That is, there are no further _quantified_ K in the target.  Requires:  not $ null sB substRCon :: String -> (RPVar, SpecType) -> SpecType -> SpecTypeDGInterface: Modified CoreSyn.exprType due to predApp -------------------#= >?@AB C D E F     TUVWXYZ[\]^_`abcde=>?@ABCDEF^_`abcdeTUVWXYZ[\]?>=C@ADBEF#= >?@AB C D E F     #NoneF-I%Integer Keys for Fixpoint EnvironmentJFixpoint EnvironmentQ subtyping constraints over RTypeR%wellformedness constraints over RTypeS.additional stratum constrains for let bindingsT$subtyping over Sort (post-splitting)U.tracks constraints that come from let-bindingsV5wellformedness constraints over Sort (post-splitting)W"counter for generating fresh KVarsXset of environment bindersYsource-position annotation mapZ#information about type-constructors[ ? FIX THIS\+Terminating Metrics for Recursive functions]3Set of variables to ignore for termination checking^ ? FIX THIS_ ? FIX THIS`4primitive Sorts into which TyCons should be embeddeda>Fixpoint Kut variables (denoting "back-edges"/recursive KVars)b ? FIX THIScCheck Termination (?)dCheck Strata (?)e!Trust ghc auto generated bindingsfprune unsorted refinementsg#Errors during constraint generationhProfiling distribution of KVarsi3number of recursive functions seen (for benchmarks)j+Source Span associated with Fixpoint Binder{ Location in original source file|SpecTypes for Bindings in scope}Map from free Symbols (e.g. datacons) to Var , penv :: !(F.SEnv PrType) -- ^ PrTypes for top-level bindings (merge with renv)~Dictionary EnvironmentFixpoint Environment0recursive defs being processed (for annotations)Datatype invariantsDatatype checkable invariants6Top-level variables with (assert)-guarantees to verify&Top-level variables with assumed 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 constraints&Let binding that have not been checked&Types with holes, will need refreshingLogical Constraints_GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~YGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`yz{|}~wxosptuvtqrmnlkOPQRSTUVWXYZ[\]^_`abcdefghijMNLKGHIJ%GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnosptuvtqrwxyz{|}~$None24F%None3EFThe name of the bound(Type variables that appear in the bounds'These are abstract refinements, for nowThese are value variablesThe body of the bound                  &None234F 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 aliasesRefinement/Predicate aliasesExpression aliasesGHC-Tycon-to-fixpoint Tycon mapQualifiers in source/spec files#Information on decreasing argumentsAVariables that should be checked in the environment they are used+Ignore Termination Check in these Functions7Binders to turn into measures using haskell definitions5Binders to turn into bounds using haskell definitions;Binders to turn into logic inline using haskell definitions5Type Constructors that get automatically sizing info 4Command-line configurations passed in through source!Measures attached to a type-class'Mappings from (measure,type) -> measureRefined Type-Classes$Terminating Conditions for functionsA wired-in measure strLen; that describes the length of a string literal, with type Addr#.D              ! " # $ % & '//!              ! " # $ % & ''None234EFUsed to parse .spec files (~The top-level parser for "bare" refinement types. If refinements are not supplied, then the default "top" refinement is used. )@Parsing Qualifiers --------------------------------------------- *:Bundling Parsers into a Typeclass ------------------------ + For debugging , - . / 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 { | } ~  ) * + , I H G F E D C B A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 / . - J L K 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 { | } ~  ) * +(None3F  )NoneFBLH Primitive TyCons ----------------------------------------------BLH Primitive TyCons ----------------------------------------------ALH Primitive Types ----------------------------------------------    *None234<EF2             +                +NoneF returns   for unhandled lits because otherwise string-literals show up as global int-constants which blow up qualifier instantiation.    ,NoneF        -NoneF JReplace Predicate Arguments With Existentials ----------------------------mNiki: please write more documentation for this, maybe an example? I can't really tell whats going on... (RJ)                              .NoneF  !                 !     /None24F " # $ % & ' ( ) * " # $ % & ' ( ) *0None*-./2346EFM +&TODO: All this *should* happen inside Bare; but appears to happen after certain are signatures are fresh#-ed, which is why they are here. ,CHelpers: Reading/Extending Environment Bindings ------------------- -2Used for annotation binders (i.e. at binder sites) ./Used for annotating reads (i.e. at Var x sites) /PUsed to update annotations for a location, due to (ghost) predicate applications 0FRight 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 1~Used to generate "cut" kvars for fixpoint. Typically, KVars for recursive definitions, and also to update the KVar profile. 2 varTemplate2 is only called with a `Just e` argument when the e corresponds to the body of a Rec binder. 3instantiatePreds' peels away the universally quantified PVars of a RType, generates fresh Ref. for them and substitutes them in the body. 4instantiateStrata generates fresh Strata: vars and substitutes them inside the body of the type. 5>Type Synthesis ----------------------------------------------- 6 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) 7BHelpers: Creating Fresh Refinement ------------------------------- 8RJ: nomeet replaces  8 for  in the definition of  9 . Why does `tests/neg/strata.hs`$ fail EVEN if I just replace the  :2 case? The fq file holds no answers, both are sat. ; < = > ? @ 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 9 8  ; > = < ? @ 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 9 8 1None24FThrow a panic exception CPretty 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.      2None234F 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 binder+Main type of value returned for diff-check. 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.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 ----------------------------------------------------K                             ! " # $ % & ' ( ) * + , - . /C                              ! " # $ % & ' ( ) * + , - . /3None24F  !"#$% 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 D4None3F7NError-Reader-IO For Bare Transformation --------------------------------------&'()*+,-./01234567 E89 F:;<=&'()*+,-./0123456789:;<=765&'()*+,-./0123489:;<=& '()*+,-./01234567 E89 F:;<=5None24F> G H? I J K L M N O P Q R S T U V W X Y Z>?>?> G H? I J K L M N O P Q R S T U V W X Y Z6None234FD0It'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.@ABC ^ _ ` aDE bF c d e f@ABCDEF@ABCDEF@ABC ^ _ ` aDE bF c d e f7NoneEFG g hHI iGHIGHIG g hHI i8None3FJKLMN jOPQ kR l mSTU JKLMNOPQRSTU NSRJKLMOPQTU JKLMN jOPQ kR l mSTU9NoneEFVWX n o p qVWXVWXVWX n o p q:None234EFYZ r s t u v w x y z { | } ~ YZYZYZ r s t u v w x y z { | } ~ ;None3EF exprArg 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[\]^ _` [\]^_`[\]^_`[\]^ _` <None3EF a bc d abcdadbc a bc d =None3EFef gh ijk l m efghijklm efmijkhglef gh ijk l m >NoneEF n nn n ?None3?EFw=API: Bare Refinement Types ----------------------------------opqrstuv wxy z { | } ~ opqrstuvwxyz{|}~opqrsvuwxyz{|}~topqrstuv wxy z { | } ~ @None234EF CJSON: Annotation Data Types ---------------------------------------output" creates the pretty printed outputannotate% actually renders the output to files DPandoc HTML Rendering (for lhs + markdown source) ------------------ DDirect 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 JL& 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 ------------------------------------------ KA Little Unit Test -------------------------------------------------------- CJSON Instances ----------------------------------------------------<  6    ANone24EFM Attempt to canonicalize all   s in the 3 so we don't have to worry about relative paths.Updating optionsCExit Function ----------------------------------------------------- %Monoid instances for updating options                            BNone?EFM  checkRTypeO determines if a type is malformed in a given environment ---------------------  checkMeasuresO determines if a measure definition is wellformed -----------------------------               ! " # $  % & ' (               ! " # $  % & ' (CNone 3F ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A Blmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~ ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A BMNoneFlmnopqrstuvwxyz{|}~lmnopqrstuvwxyz{|}~DNone F  C D E F G H I J K L  C D E F G H I J K LENoneF M N M NFNone24EFM O=Extracting CoreBindings From File --------------------------- PKDesugaring (Taken from GHC, modified to hold onto Loc in Ticks) -----------KExtracting Qualifiers ----------------------------------------------------- QKExtracting Specifications (Measures + Assumptions) ------------------------ R$Convert a GHC error into one of ours' S T U V W X Y Z [ \ O ] ^ _ P Q ` a b c d e f g h i j k l m n o R p q r s t' S T U V W X Y Z [ \ O ] ^ _ P Q ` a b c d e f g h i j k l m n o R p q r s tG Safe-InferredFHNone;FI Safe-Inferred;<F uNOPNOQNORNOSNOTNOTNOUNOVNOWXYZXY[XY\XY]XY^XY_XY`XYaXYbXcdefghijklmnopqrstuvwxyz{|}~   _      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Y        !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG 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.:/;0<1=1>2?2@2A2B2C2D2E2F3G3G3H3I3J3K3L3M3N3O3P4Q4R4S4T4U4V4W4X44 4Y4Z4[4\4]4^4_4`4a4b4c4d4e4f5g5h6i6j6k6l6m6n6o7p7q7r8s8t8u8v8w8x8y8z8{8|8}8~999::;;;;;;<<<<=========>????????????????@@AAAAABBBCDEFGHHHHHHHHIIIIIIIIIIIIIIIIIIIII      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS T U V W X Y Z [ \ ] ^ _ ` a b c d efghijklmnopqrstuvwxyz{|}~                                                                                     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Xc                                  ! " # $ % & ' ( ) * + , - . / 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 { { | } ~ ~                XY ! ! ! ! ! !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- 1- 2- 3- 4- 5. 6/ 7/ 8/ 9/ :/ ;/ </ =/ / >0 ?0V0 @0 A0 B0 C0 D0 E0 F0 G0 H0 I0 J0 K0 L M N0 O0 P0 Q0 R0 S0 T0 a0 U0 V0 W0 X0 Y0 Z0 [0 \0 ]0 ^0 _0 `0 a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0 m0 n0 o0 p0 q0 r0 s0 t0 u0 v0 w0 x0 y0 z0 {0 |0 }0 ~0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 22 22 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 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 =3 >3 ?3 @3 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 O3 P3 Q3 R4 S4 T5 U5 V5 W5 X5 Y5 Z5 [5 \5 ]5 ^5 _5 `5 a5 b5 c5 d5 e5 f5 g5 hN i i M jN k k6 l6 m6 n6 o6 p6 q6 r6 s6 t7 u7 v7 w8 x8 y8 z8 {9 |9 }9 ~9 : : : : : : : : : : : : : : ; ; ; ; ; ; ; ; ; ; ; ; ; < < < < < < < = = = = = = = = = = = = = = = = = > > > > > > > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A R  A AA A A A A A A A A A A A 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 0B 1B 2B 3C 4C 5C 6C 7C 8C 9C :C ;C <C =C >C ?C @C AC BC CC DC EC FC GC HC IC JC KC LC MD ND OD PD QD RD SD TD UD VD WE XE YF ZF [F \F ]F ^F _F `F aF bF cF dF eF fF gF hF iF jF kF lF mF nF oF pF qF rF sF tF uF vF wF xF yF zF {F F |F }F ~ liquidhaskell-0.5.0.0'Language.Haskell.Liquid.Desugar.DsUtilsLanguage.Haskell.Liquid.Types%Language.Haskell.Liquid.Desugar.Match)Language.Haskell.Liquid.Desugar.DsForeign&Language.Haskell.Liquid.Desugar.DsExpr(Language.Haskell.Liquid.Desugar.Coverage(Language.Haskell.Liquid.Desugar.MatchLit'Language.Haskell.Liquid.Desugar.DsGRHSs'Language.Haskell.Liquid.Desugar.DsBinds(Language.Haskell.Liquid.Desugar.MatchCon(Language.Haskell.Liquid.Desugar.DsArrows*Language.Haskell.Liquid.Desugar.DsListComp'Language.Haskell.Liquid.Desugar.Desugar&Language.Haskell.Liquid.Desugar.DsMeta%Language.Haskell.Liquid.Desugar.CheckPaths_liquidhaskell'Language.Haskell.Liquid.Desugar.HscMain Language.Haskell.Liquid.VarianceLanguage.Haskell.Liquid.NamesLanguage.Haskell.Liquid.GhcMisc Language.Haskell.Liquid.VisitorsLanguage.Haskell.Liquid.CTagsLanguage.Haskell.Liquid.ACSSLanguage.Haskell.Liquid.GhcPlayLanguage.Haskell.Liquid.MiscLanguage.Haskell.Liquid.StrataLanguage.Haskell.Liquid.FreshLanguage.Haskell.Liquid.World Language.Haskell.Liquid.Simplify$Language.Haskell.Liquid.TransformRec$Language.Haskell.Liquid.ANFTransform#Language.Haskell.Liquid.PrettyPrintLanguage.Haskell.Liquid.RefType Language.Haskell.Liquid.PredType(Language.Haskell.Liquid.Constraint.Types-Language.Haskell.Liquid.Constraint.ConstraintLanguage.Haskell.Liquid.BoundsLanguage.Haskell.Liquid.MeasureLanguage.Haskell.Liquid.ParseLanguage.Haskell.Liquid.TidyLanguage.Haskell.Liquid.WiredIn#Language.Haskell.Liquid.CoreToLogic Language.Haskell.Liquid.Literals$Language.Haskell.Liquid.Bare.SymSort(Language.Haskell.Liquid.Bare.Existential$Language.Haskell.Liquid.Dictionaries Language.Haskell.Liquid.RefSplit+Language.Haskell.Liquid.Constraint.GenerateLanguage.Haskell.Liquid.Errors!Language.Haskell.Liquid.DiffCheckLanguage.Haskell.Liquid.Cabal Language.Haskell.Liquid.Bare.Env'Language.Haskell.Liquid.Bare.RefToLogic#Language.Haskell.Liquid.Bare.Lookup#Language.Haskell.Liquid.Bare.Expand!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.Measure"Language.Haskell.Liquid.Bare.RTEnv!Language.Haskell.Liquid.Bare.Spec Language.Haskell.Liquid.AnnotateLanguage.Haskell.Liquid.CmdLine"Language.Haskell.Liquid.Bare.Check$Language.Haskell.Liquid.Bare.GhcSpec!Language.Haskell.Liquid.Qualifier-Language.Haskell.Liquid.Constraint.ToFixpoint$Language.Haskell.Liquid.GhcInterfaceLanguage.Haskell.Liquid.ListLanguage.Haskell.Liquid.ForeignLanguage.Haskell.Liquid.PreludeLanguage.Haskell.Liquid ConstraintACSSLanguage.Haskell.Liquid.Bare ghc-7.8.3DsMonadeqn_rhseqn_patsEqnInfo EquationInfo MatchResultCanFailCantFail CanItFailliquid-fixpoint-0.4.0.0Language.Fixpoint.TypesisDummydummyLocvallocElocLocLocated LocSymbolLocTextLanguage.Fixpoint.Names dummyNamematchSinglePat matchSimply matchWrappermatch dsForeigns dsForeigns' dsFImport dsCImportdsFCall dsPrimCall dsFExportdsFExportDynamicmkFExportCBitsforeignExportInitialisertoCType dsLocalBindsdsLExprdsExpraddTicksToBinds hpcInitCodeCaseAlt MkCaseAltalt_pat alt_bndrs alt_wrapper alt_resultselectSimpleMatchVarLselectMatchVarsselectMatchVarfirstPat shiftEqns matchCanFailalwaysFailMatchResultcantFailMatchResultextractMatchResultcombineMatchResultsadjustMatchResultadjustMatchResultDs wrapBindswrapBindseqVarmkCoLetMatchResultmkViewMatchResultmkEvalMatchResultmkGuardedMatchResultmkCoPrimCaseMatchResultmkCoAlgCaseMatchResultmkCoSynCaseMatchResult mkErrorAppDs mkCoreAppDs mkCoreAppsDsmkSelectorBinds mkLHsPatTupmkLHsVarPatTupmkVanillaTuplePatmkBigLHsVarTup mkBigLHsTupmkBigLHsVarPatTupmkBigLHsPatTup mkOptTickBoxmkBinaryTickBoxdsLit dsOverLitwarnAboutIdentitieswarnAboutEmptyEnumerations tidyLitPattidyNPat matchLiteralshsLitKey hsOverLitKey matchNPatsmatchNPlusKPats dsGuardeddsGRHSsdsGRHS dsTopLHsBinds dsLHsBindsdsSpecdecomposeRuleLhs dsHsWrapper dsTcEvBinds dsEvBindsmatchConFamily matchPatSynmatchEquations dsProcExpr dsListComp dsPArrComp dsMonadComp dsValBindsdeSugarWithLocdeSugar deSugarExpr dsBrackettemplateHaskellNames qTyConName nameTyConName decTyConName typeTyConName tExpTyConNameliftNameliftStringName mkNameG_vName mkNameG_dNamemkNameG_tcName unTypeName unTypeQNameunsafeTExpCoerceNametExpDataConName expQTyConName decQTyConNamedecsQTyConNametypeQTyConName patQTyConName quoteExpName quotePatName quoteDecName quoteTypeName ExhaustivePatcheckversion getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamehscDesugarWithLocVariance Covariant Contravariant Bivariant Invariant VarianceInfo lenLocSymbolL MGIModGutsMI mgi_binds mgi_modulemgi_deps mgi_dir_imps mgi_rdr_envmgi_tcs mgi_fam_insts mgi_exports mgi_cls_inst miModGuts srcSpanTick tickSrcSpan stringTyVar stringTyConhasBaseTypeVar isBaseType validTyVartvIdtracePprpprShowtidyCBsunTick unTickExprisFractionalClass isDataConIdgetDataConVarUniqueunpackRealSrcSpan realSrcSpan toFixSDocsDocDocpprDocshowPprshowSDoc showSDocDumptypeUniqueStringsourcePosSrcSpansourcePosSrcLocsrcSpanSourcePossrcSpanSourcePosEsrcSpanFilenamesrcSpanStartLoc srcSpanEndLoconeLinelineColrealSrcSpanSourcePosrealSrcSpanSourcePosE getSourcePos getSourcePosEcollectArgumentscollectValBinders'ignoreLetBindsisDictionaryExpression isDictionary isInternal realTcArity kindArity uniqueHash lookupRdrName addContextqualImportDecl ignoreInline symbolTyCon symbolTyVar varSymbolqualifiedNameSymbolfastStringTexttyConTyVarsDef gHC_VERSION desugarModulesymbolFastStringlintCoreBindingssynTyConRhs_maybetcRnLookupRdrName$fSymbolicFastString $fSymbolicVar$fSymbolicName$fSymbolicTyCon$fHashableTyCon $fHashableVar $fShowTyCon $fShowClass $fShowVar $fShowName$fFixpointType$fFixpointName $fFixpointVar$fFromJSONSrcSpan$fToJSONSrcSpan$fFromJSONRealSrcSpan$fToJSONRealSrcSpan$fOutputableHashSet$fHashableSrcSpan $fHashableLoc CBVisitablefreeVarsreadVarsletVarsliteralsTagEnvTagKey defaultTag memTagEnv makeTagEnvgetTagStatusCrashErrorUnsafeSafeAnnMapAnntypeserrorsstatushscolourhsannot srcModuleNamebreakSSubablesubsubTysubVar substTysWith $fSubableType $fSubableBind $fSubableVar $fSubable(,,)$fSubableCoercion $fSubableExprfirstDuplicate safeIndex!? safeFromJustfst4snd4 mapFourth4addFst3addThd3dropFst3dropThd3replaceNfourth4third4mapSndMfirstMsecondMfirst3Msecond3Mthird3Mthird3zip4ghc getIncludeDir getCssPathgetCoreToLogicPathmaximumWithDefaultsafeZipWithErrorsafeZip3WithErrormapNsmapNpadordNub intToStringKVProfKVKindLetECaseELamE PredInstE TypeInstE NonRecBindERecBindEOutputOo_varso_errorso_typeso_templso_botso_resultAnnotAnnLocAnnRDfAnnDefAnnUseAnnInfoAIRClassrcNamercSupersrcTyVars rcMethodsBodyRPEDefmeasuredparamsctordsortbindsbodyCMeasureCMcNamecSortMeasureMnamesorteqnsRTEnvRTE typeAliases predAliases exprAliasesModType SpecImport SrcImportTargetModNameResultresultCinfoCici_locci_errTErrorErrOther ErrRClassclsinsts ErrTerminbindErrSaved ErrAliasAppnargsdargsErrIllegalAliasAppdnamedpos ErrAliasCycleacycle ErrMismatchhslqErrGhc ErrUnboundErrHMeasErrMeasms ErrIAlMist1t2ErrIAlErrInvtinv ErrBadData ErrDupSpecs ErrDupAliaskindlocs ErrTermSpecexp ErrTySpecvartypErrParseerr ErrAssTypeoblref ErrFCrash ErrSubTypeposmsgctxtacttexpEMsg ErrorResultREnv UReftableofUReftRTypeRepty_varsty_preds ty_labelsty_bindsty_reftsty_argsty_resRTAliasRTArtNamertTArgsrtVArgsrtBodyrtPosrtPosEDataDeclDtycName tycTyVarstycPVars tycTyLabstycDCons tycSrcPostycSFunRDEnvDEnv RInstanceRIriclassrityperisigs RefTypableppRType TyConableisFunisListisTupleppTyconisClassisNumCls isFracClsSubsTysubtStrataStratumSFinSWhnfSDivSVarRRPropSpecPropSpecTypeBareTypePrTypeRReftRPVarBPVarRSortBSortRRTypeBRTypeUReftUur_reftur_pred ur_strataHSegHVarHBindhs_addrhs_valWorldRTPropRefRHProprf_heapRProprf_bodyRPropPrf_argsrf_reftObligOConsOInvOTermRTypeRHoleRRTyrt_envrt_refrt_oblRAppTyrt_argrt_resRExprArgRExrt_exargRAllE rt_allargRApprt_tyconrt_argsrt_pargsRAllSrt_sbindRAllP rt_pvbindRAllT rt_tvbindrt_tyRFunrt_bindrt_inrt_outRVarrt_varrt_reft TyConInfovarianceTyArgsvariancePsArgs sizeFunctionRTyConrtc_tcrtc_infoRTyVarRTV PredicatePrUsedPVarPVKindPVHPropPVPropPVarPVpnameptypepargpargs TargetVarsOnlyAllVarsDataConPdc_loc freeTyVarsfreePred freeLabelstyConststyArgstyResdc_locETyConP freeTyVarsTy freePredTy freeLabelTy varianceTs variancePssizeFunLMaplvarlargslexprLogicMapGhcSpecSPtySigsasmSigsctorsmeas invariantsialiasesdconsPtconsPfreeSymstcEmbeds qualifierstgtVarsdecrtexprslvarslazyautosizeconfigexportsmeasurestyconEnvdictsGhcInfoGIenvcbsderVarsimpVarsdefVarsuseVarshqFilesimportsincludesspecPPEnvPPppPsppTyVarppSsppShortPPrintpprint pprintTidyTidyFullLossyConfigfilesidirs diffcheckreal fullchecknativebindersnoCheckUnknown notermination nowarningstrustinternals nocaseexpandstrata notruetypestotalitynoPrune maxParams smtsolver shortNames shortErrorscabalDir ghcOptionscFilesshowppppEnv ppEnvShort toLogicMap eAppWithMappvTypepvars isClassRTyCon rTyConPVs rTyConPropVsisPropPV isClassTypedefaultTyConInfo ignoreObligisSVar mapRTAVars fromRTypeRep toRTypeRepmkArrow bkArrowDeepbkArrow safeBkArrowmkUnivsbkUnivbkClassrFunrClsrRCls addTermCond addInvCondpApppappSym isTrivialmapReftisBaseisFunTymapReftMfoldReft efoldReftmapBotmapBindofRSorttoRSort insertsSEnv rTypeValueVar rTypeReftstripRTypeBase makeDivType makeFinType getStrata errToFCrasherrSpanerrOther isSrcImport isSpecImport getModName getModStringmapRTmapRPmapRE emptyKVProf updKVProfholeisHolehasHole liquidBegin liquidEnd SubStratumsubSsubsS<:= solveStrata FreshablefreshtruerefreshemptysimplifyBoundstransformRecExprtransformScope anormalize pprintSymbolpprManyOrderedrtypeDoc ppr_rtypeppSpinepprintLongListstrengthenDataConTypepdVarfindPVaruRTypeuRType' uRTypeGenuPVaruReftuToprVarrTyVar symbolRTyVar normalizePdsrExrAppstrengthenRefTypeGen strengthen addTyConInfo appRTyCon generalize tyClassessubsTyVars_meetsubsTyVars_nomeetsubsTyVar_nomeetsubsTyVar_meetsubts subvUReft subvPredicateofType dataConSymbol dataConReft dataConMsRefttoTyperTypeSortedReft rTypeSort applySolutionshiftVVtypeUniqueSymboltypeSort tyConNamemkDataConIdsTy classBinds makeNumEnv isDecreasing makeDecrType isSizeable makeLexRefa mkTyConInfo makeTyConInfodataConPSpecType dataConTyreplacePredsWithRefs pVartoRConc pvarRType replacePredspredType substPargwiredSortedSymsFEnvFEfe_bindsfe_env RTyConIAl RTyConInvHEnvCGInfohsCshsWfssCsfixCsisBindfixWfs freshIndexannotMap tyConInfospecDecr termExprs specLVarsspecLazyautoSize tyConEmbedkutslitstcheckschecktrustghc pruneRefs logErrorskvProfrecCount bindSpansFixWfCFixSubCWfCSubCSubRobligsenvlhsrhs LConstraintLCCGEnvCGErenvsyenvdenvfenvrecsinvsialgrtysassmsembtgEnvtgKeytreclcbholeslcs pprCGInfo fromListHEnvelemHEnv mkRTyConInv mkRTyConIAl addRTyConInvaddRInvconjoinInvariantShiftconjoinInvariantgrapBindsWithType toListREnv filterREnv fromListREnv deleteREnv insertREnv lookupREnv memberREnv insertFEnv insertsFEnvinitFEnv$fPPrintCGInfo$fSubStratumSubC $fPPrintWfC $fPPrintSubC $fShowCGEnv $fPPrintCGEnvtypeToConstraintaddConstraintsconstraintToLogicconstraintToLogicOnesubConstraintToLogicOne combinations$fMonoidLConstraintRRBEnvRBEnvRRBoundRBoundBoundbnametyvarsbparamsbargsbbody makeBoundenvToSubMSpecctorMapmeasMapcmeasMapimeasSpecsigs localSigs dataDeclsaliasespaliasesealiasesembedshmeashboundsinlinespragmas cmeasures imeasuresclasses termexprs rinstance dvarianceboundsBareSpec qualifySpecmkMmkMSpec'mkMSpecmapTy dataConTypes defRefTypestrLenwiredInMeasureshsSpecificationPlhsSpecificationPspecSpecificationPparseSymbolToLogic tidySymbol isTmpSymbol tidySpecType propTyCon hpropTyConpropTypemaxArity wiredTyCons wiredDataConswiredTyDataConslistTyDataConstupleTyDataCons pdVarReftmkpsmkps_ logicTypestrengthenResult runToLogic coreToDef coreToFunmkLitliteralFRefType literalFReft literalConst txRefSort txExpToBindmakeDictionariesmakeDictionary dfromListdmaptydmapdinsertdlookupdhasinfosplitXRelatedRefsgenerateConstraints tidyError exitWithPanic DiffCheckDCnewBinds oldOutputnewSpecslicethin saveResultInfo cabalFile buildDirs sourceDirsexts otherOptions packageDbs packageDeps macroPath cabalInfoBareEnvBEmodNametcEnvrtEnvvarEnvhscEnvlogicEnvTInlineTItiargstibodyInlnEnvTCEnvWarnBareMinModule withVArgs setRTAlias setRPAlias setREAliasexecBare Transformable txRefToLogic GhcLookup lookupNamesrcSpanlookupGhcThing lookupGhcVarlookupGhcTyConlookupGhcDataCon expandReft expandPred expandExpr MapTyVarSTMTVSTvmaperrmsg makeSymbols initMapSt runMapTyVars mapTyVars mkVarExprjoinVarsimpleSymbolVar hasBoolResultmakePluggedSigsmakePluggedAsmSigsmakePluggedDataCons Resolvableresolve ofBareType ofMeaSortofBSortofBPVar mkSpecType mkSpecType' makeConTypes dataConSpecmeetDataConSpecmakeTyConEmbedsmakeHaskellMeasuresmakeHaskellInlinesstrengthenHaskellMeasuresmakeMeasureSelectorsmakeMeasureSpecmakeMeasureSpec'makeClassMeasureSpec varMeasuresmakeHaskellBounds makeRTEnv makeClassesmakeQualifiers makeHintsmakeLVarmakeLazy makeHBounds makeTExpr makeHIMeasmakeTargetVarsmakeAssertSpecmakeAssumeSpecmakeDefaultMethods makeIAliasesmakeInvariantsmakeSpecDictionaries makeBoundsmkOutputannotategetOptsmkOpts withPragmas withCabalexitWithResult checkGhcSpeccheckTerminationExprcheckTy makeGhcSpecspecificationQualifiers cgInfoFInfo getGhcInfo transposeintCSizecSizeIntmkPtr isNullPtrfpLenpLenderefeqPtrplusminustimeseqneqleqgeqltgt liquidAssertB liquidAssert liquidAssume liquidAssumeB liquidErrorcrashforcechooseisEvenisOdd safeZipWith==>BindingtoCNamemkHObj unpackHObj showStgType showFFIType typeTyCon insertRetAddr ret_addr_arg getPrimTyOfprimTyDescCharshouldTickBindaddTickLHsExprLetBodytickSameFileOnly MixEntry_TMunTMFreeVars TickishType BreakpointsHpcTicks ProfNotes TickTransEnvTTEfileNamedensity tte_dflagsdeclPathinScope blackListthis_mod tickishTypeTickTransStateTT tickBoxCount mixEntries TickDensity TickCallSitesTickExportedFunctionsTickTopFunctionsTickAllFunctionsTickForBreakPointsTickForCoverageguessSourceFile mkModBreakswriteMixEntries mkDensityshouldTickPatBindaddTickLHsBindsaddTickLHsBindbindTickaddTickLHsExpraddTickLHsExprRHSaddTickLHsExprEvalInneraddTickLHsExprNeverisGoodBreakExpr isCallSiteaddTickLHsExprOptAltaddBinTickLHsExpr addTickHsExpr addTickTupArgaddTickMatchGroup addTickMatch addTickGRHSs addTickGRHSaddTickGRHSBody addTickLStmtsaddTickLStmts' addTickStmtaddTickaddTickStmtAndBindersaddTickHsLocalBindsaddTickHsValBindsaddTickHsIPBinds addTickIPBindaddTickSyntaxExpr addTickLPataddTickHsCmdTop addTickLHsCmd addTickHsCmdaddTickCmdMatchGroupaddTickCmdMatchaddTickCmdGRHSsaddTickCmdGRHSaddTickLCmdStmtsaddTickLCmdStmts'addTickCmdStmtaddTickHsRecordBindsaddTickArithSeqInfoliftLnoFVsgetEnvwithEnv getDensity ifDensity getFreeVarsfreeVar addPathEntry getPathEntry getFileNameisGoodSrcSpan'isGoodTickSrcSpanifGoodTickSrcSpan bindLocals isBlackListed allocTickBox allocATickBox mkTickishallocBinTickBoxmkBinTickBoxHpcmkHpcPos hpcSrcSpanmatchesOneOfManymixHash $fMonadTM$fApplicativeTM $fFunctorTM sort_alts mkPatSynCase mkDataConCase mkPArrCase mkFailurePair dsOverLit'conversionNameswarnAboutOverflowedLiterals litValKey matchGuards isTrueLHsExpr ds_lhs_binds dsLHsBinddsHsBind makeCorePair dictAritydsSpecs specUnfolding specOnInline sccEvBindsdsEvTerm dsTcCoercionds_tc_coercion ConArgPatsmatchOneConLikecompatible_pats same_fieldsselectConMatchVars conArgPatsPatGroupPgOverloadedListPgViewPgCoPgBangPgNpKPgNPgLitPgSynPgConPgAny matchCheckmatchCheck_reallymaximum_output dsShadowWarndsIncompleteWarn pp_contextppr_patsppr_shadow_patsppr_incomplete_patsppr_constraintppr_eqn matchEmptymatchVariables matchBangs matchCoercion matchViewmatchOverloadedListdecomposeFirstPatgetCoPat getBangPat getViewPatgetOLPat tidyEqnInfotidy1 tidy_bang_patgroupEquationssubGroup 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 mkMcUnzipM dsIPBinds ds_val_bind dsStrictBindstrictMatchOnly findFielddsExplicitListspanTail dsArithSeqdsDohandle_failure mk_fail_msgwarnDiscardedDoBindings badMonadBind dsImpSpecscombineEvBindsaddExportFlagsAndRulesdsRuledsVectCoreMkC GenSymBindrepTopPrepTopDshsSigTvBindersrepTyClDrepRoleD repDataDefn repSynDecl repFamilyDeclrepFamilyDecls mk_extra_tvs repLFunDeps repLFunDep repFamilyInforepInstD repClsInstD repTyFamInstD repTyFamEqnrepDataFamInstDrepForD repCCallConv repSafetyrepFixDrepRuleD ruleBndrNames repRuleBndrds_msgrepCin_subst mkGadtCtxt repBangTy repDerivsrep_sigs rep_sigs'rep_sig rep_ty_sig rep_inlinerep_specialiserep_specialiseInst repInline repRuleMatch repPhases addTyVarBindsaddTyClTyVarBindsrepTyVarBndrWithKind repLContext repContextrepLPredrepPredrepLTysrepLTyrepTyrepTyLitrepLKindrepNonArrowLKindrepNonArrowKindrepRole 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 repNewtyperepTySynrepInstrepClass repPragInl repPragSpecrepPragSpecInlrepPragSpecInst repPragRulerepFamilyNoKind repFamilyKind repTySynInstrepClosedFamilyNoKindrepClosedFamilyKind repTySynEqn repRoleAnnotD repFunDeprepProtorepCtxt repClassP repEqualP repConstr repTForallrepTvarrepTapprepTappsrepTSigrepTPromotedListrepTLit repNamedTyCon repTupleTyConrepUnboxedTupleTyCon repArrowTyCon repListTyConrepPromotedTyConrepPromotedTupleTyConrepPromotedNilTyConrepPromotedConsTyCon repPlainTV repKindedTVrepKVarrepKCon repKTuple repKArrowrepKListrepKApprepKAppsrepKStarrepKConstraint repLiteral mk_integer mk_rational mk_stringrepOverloadedLiteralmk_lit repGensymrepBindQ repSequenceQrepListcoreList coreList'nonEmptyCoreList coreStringLit coreIntLitcoreVar 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 fieldExpName guardedBName normalBName normalGEName patGEName bindSNameletSName noBindSNameparSNamefunDNamevalDName dataDName newtypeDName tySynDName classDName instanceDNamesigDName forImpDName pragInlDName pragSpecDNamepragSpecInlDNamepragSpecInstDName pragRuleDNamefamilyNoKindDNamefamilyKindDName dataInstDNamenewtypeInstDNametySynInstDNameclosedTypeFamilyKindDNameclosedTypeFamilyNoKindDName infixLDName infixRDName infixNDNameroleAnnotDNamecxtName classPName equalPName isStrictName notStrictName unpackedName normalCNamerecCName infixCName forallCNamestrictTypeNamevarStrictTypeName forallTNamevarTNameconTName tupleTNameunboxedTupleTName arrowTName listTNameappTNamesigTNamelitTName promotedTNamepromotedTupleTNamepromotedNilTNamepromotedConsTName numTyLitName strTyLitName plainTVName kindedTVName nominalRNamerepresentationalRName phantomRName inferRNamevarKNameconKName tupleKName arrowKName listKNameappKName starKNameconstraintKName cCallName stdCallName unsafeNamesafeNameinterruptibleNamenoInlineDataConNameinlineDataConNameinlinableDataConNameconLikeDataConNamefunLikeDataConNameallPhasesDataConNamefromPhaseDataConNamebeforePhaseDataConName ruleVarNametypedRuleVarName funDepName typeFamName dataFamName tySynEqnNamematchQTyConNameclauseQTyConNamestmtQTyConName 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 fieldExpIdKey guardedBIdKey normalBIdKey normalGEIdKey patGEIdKey bindSIdKey letSIdKey noBindSIdKey parSIdKey funDIdKey valDIdKey dataDIdKey newtypeDIdKey tySynDIdKey classDIdKeyinstanceDIdKey sigDIdKey forImpDIdKey pragInlDIdKeypragSpecDIdKeypragSpecInlDIdKeypragSpecInstDIdKeypragRuleDIdKeyfamilyNoKindDIdKeyfamilyKindDIdKeydataInstDIdKeynewtypeInstDIdKeytySynInstDIdKeyclosedTypeFamilyKindDIdKeyclosedTypeFamilyNoKindDIdKey infixLDIdKey infixRDIdKey infixNDIdKeyroleAnnotDIdKeycxtIdKey classPIdKey equalPIdKey isStrictKey notStrictKey unpackedKey normalCIdKey recCIdKey infixCIdKey forallCIdKey strictTKey varStrictTKey forallTIdKey varTIdKey conTIdKey tupleTIdKeyunboxedTupleTIdKey arrowTIdKey listTIdKey appTIdKey sigTIdKey litTIdKeypromotedTIdKeypromotedTupleTIdKeypromotedNilTIdKeypromotedConsTIdKey numTyLitIdKey strTyLitIdKey plainTVIdKey kindedTVIdKey nominalRIdKeyrepresentationalRIdKey phantomRIdKey inferRIdKey varKIdKey conKIdKey tupleKIdKey arrowKIdKey listKIdKey appKIdKey starKIdKeyconstraintKIdKey cCallIdKey stdCallIdKey unsafeIdKey safeIdKeyinterruptibleIdKeynoInlineDataConKeyinlineDataConKeyinlinableDataConKeyconLikeDataConKeyfunLikeDataConKeyallPhasesDataConKeyfromPhaseDataConKeybeforePhaseDataConKeytExpDataConKey funDepIdKey typeFamIdKey dataFamIdKey tySynEqnIdKey quoteExpKey quotePatKey quoteDecKey quoteTypeKey ruleVarIdKeytypedRuleVarIdKeyNeedParsEqnSetEqnNo 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_concatchIObindirlibdirdatadir libexecdir sysconfdir throwErrors getWarnings clearWarnings logWarnings hscDesugar' getHscEnvhandleWarnings ioMsgMaybe exprFreeVars exprReadVars exprLetVars exprLiterals extendEnvbindings$fCBVisitableAltCon$fCBVisitable(,,)$fCBVisitableExpr$fCBVisitableBind$fCBVisitable[] CallGraphcallGraphRanks makeCallGraphbindEqnsLitlin annotTokeniseclassifyjoinLCodeunLCommentTransform AnnotationAlitSpanshsannot' spanAnnotspanLineinRangetokeniseWithCommentTransform tokenSpansplusLocrenderAnnotTokenrenderTypAnnotrenderErrAnnotrenderLinAnnot lineStringinsertAnnotAnchorsstitchsplitSrcAndAnns tokenModule annotParse parseLines ppAnnotTyp ppAnnotErrallProg $fShowAnnMap rtc_pvarsSymbol $fShowStratum$fShowDataDecl$fTyConableRTyConKVP _ppEnvCurrentppEnvPrintPredspdTruepdAnd mapQualBodyisProp addObligation isTauto_ureft ppTy_ureftppr_reftppr_strpToRefemapReftemapRefmapRefM mapBotRef mapBindRefstripAnnotationsstripAnnotationsRefmapRBase makeLType cinfoError emptyOutput $fShowDataCon$fPPrintDataCon$fSymbolicDataCon$fNFDataKVProf$fPPrintKVProf$fPPrintKVKind$fNFDataKVKind$fHashableKVKind$fMonoidOutput $fNFDataAnnot$fNFDataAnnInfo$fFunctorAnnInfo$fMonoidAnnInfo$fFunctorRClass $fSubableBody $fSubableDef$fSubableMeasure $fMonoidRTEnv$fSymbolicModuleName$fSymbolicModName $fShowModName$fResultFixResult$fResultTError $fResult[] $fNFDataCinfo $fErrorTError $fOrdTError $fEqTError $fPPrintEMsg$fPPrintSortedReft $fPPrintReft $fPPrintRefa$fPPrintPredicate $fPPrintPVar $fPPrintPred$fPPrintSymConst $fPPrintExpr$fPPrintSymbol $fPPrintSort $fPPrintBop $fPPrintBrel$fPPrintConstant$fPPrintInteger $fPPrintInt$fPPrintLocated $fPPrintText $fPPrint[] $fPPrint()$fPPrintSourcePos $fPPrint[]0$fPPrintStratum$fFunctorRType$fFunctorUReft$fReftablePredicate$fSubableRType $fSubableRef$fSubableUReft$fReftableUReft $fUReftable()$fUReftableUReft $fReftable[] $fSubable[]$fSubableStratum $fOrdDataDecl $fEqDataDecl$fFunctorRInstance $fShowRTyCon$fPPrintRTyCon$fFixpointCinfo$fFixpointRTyCon $fEqRTyCon$fTyConableLocated$fTyConableSymbol $fMonoid[] $fPPrintOblig $fShowOblig$fShowTyConInfo$fDefaultTyConInfo$fSymbolicRTyVar$fNFDataRTyVar $fNFDataRType $fNFData[] $fNFDataUReft$fSubableQualifier$fSubablePredicate $fSubablePVar $fMonoidUReft$fMonoidPredicate$fNFDataPredicate$fNFDataSrcSpan $fNFDataVar$fHashablePVar $fNFDataPVar$fNFDataPVKind $fFunctorPVar$fFunctorPVKind $fOrdPVar$fEqPVar $fShowLMap $fPPrint(,) $fPPrint[]1 $fPPrintMaybeallSVarsnoSVarnoUpdate updateFin updateDivsolve$fSubStratumRType$fSubStratumAnnot$fSubStratum[]$fSubStratum(,)$fSubStratumStratum trueRefTypetrueRefrefreshRefType refreshReffreshSym$fFreshablemRType$fFreshablem[]$fFreshablemUReft$fFreshablemReft$fFreshablem[]0$fFreshablemRefa$fFreshablemSymbolsepConj $fMonoidWorld dropBoundLikeisBoundLikePredisImp simplifyLenTrEnvTr_locTEinlineLoopBreakerinlineFailCases isTypeError outerScTr isCaseArg innerScTrscTransinitEnvtransPgtransBd transExpr isNonPolyRecnonPolycollectNonRecLets appTysAndIdstrans makeTrans mkRecBindsmkSubs mkFreshIdsfreshInt freshUniquemkAlive mapNonRecmapBndmapExprmapAltmapBdM$fFreshableVar$fFreshableUnique$fFreshableIntnormalizeForAllTysDsMWDsST st_expandflagst_bindsDsMrunDsMmodGutsTypeEnvnormalizeTopBindnormalizeTyVarssubst normalizeBind normalizeNameshouldNormalizeaddnormalizeLiteralfreshNormalVar normalizeexpandDefaultCaseexpandDefaultCase' cloneCase sortCases maybeParenppTyConB ppr_rsubtypeppExists ppAllExprppReftPs ppr_dbind ppr_rty_fun ppr_rty_fun' ppr_forallppr_cls ppr_pvar_def ppr_pvar_kindppr_name ppr_tyvarppr_tyvar_short ppRefArgsppRefSympprAnnInfoBindspprAnnInfoBindpprXOTppTable$fPPrintHashMap$fPPrintAnnInfo $fPPrintAnnot $fPPrintUReft $fPPrintRef$fPPrintRTyVar$fShowPredicate $fPPrintClass $fPPrintType $fPPrintTyCon $fPPrintName $fPPrintVar$fPPrintParseError$fPPrintSourceError$fPPrintErrMsg $fPPrintDoc$fPPrintSrcSpanReft $fEqPredicate $fFixpoint[]$fReftableRTypeFreeVareqRSorteqpdrPredaddPdsnlzPstrengthenRefTypestrengthenRefType_meets expandRApp rtPropToprtPropPVmkRTProppvArgs isNumeric addNumSizeFun subsTyVars subsTyVarsubsFree subsFreessubsFreeRAppTymkRApp refAppTyToFun subsFreeRefofType_ isBaseDataConisBaseTy appSolRefa tyConFTyContypeSortForAll typeSortFungrabArgsexpandProductType mkProductTy rTyVarSymbolmkDType mkDecrFun cmpLexRef makeLexReft $fShowRTAlias$fExpressionVar$fSubsTytvtyRef$fSubsTySymbolRTypeRType$fSubsTySymbolRTypeLocated$fSubsTyRTyVarRTypeRType$fSubsTyRTyVarRTyVarRType$fSubsTyRTyVarRTypeRType0$fSubsTyRTyVarRTypeRType1$fSubsTyRTyVarRTypeRTyCon$fSubsTytvtyPVar$fSubsTytvtyPVKind$fSubsTytvtyReft$fSubsTytvty() $fPPrintREnv $fShowRef $fShowRType $fPPrintRType $fShowUReft $fShowRTyVar $fNFDataRef$fHashableRTyCon $fOrdRTyCon$fHashableRTyVar $fOrdRTyVar $fEqRTyVar $fEqRType$fFreeVarLocatedSymbol$fFreeVarRTyConRTyVar$fRefTypableRTyConRTyVarr$fRefTypablecSymbolr$fFixpointClass $fReftableRef $fMonoidRef $fMonoidRef0 $fMonoidRType substRConmkRTyCon rpredType predRTyCon wpredRTyCon symbolRTyCon substPred substPredP splitRPvar freeArgsPs freeArgsPsRefmeetListWithPSubsmeetListWithPSubsRefmeetListWithPSubmeetListWithPSubRefpredName wpredName symbolType pappAritypappSort predFTyCon$fShowDataConP$fPPrintDataConP $fShowTyConP$fPPrintTyConP pprint_bsyms makeBoundType partitionPsisPApp toUsedPVars toUsedPVarmakeRef$fBifunctorBound $fPPrintBound $fShowBound $fEqBound$fHashableBoundcheckDuplicateMeasurerefineWithCtorBodybodyPred$fShowCMeasure$fPPrintCMeasure $fShowMeasure $fPPrintMSpec$fPPrintMeasure $fPPrintDef $fPPrintBody$fBifunctorSpec$fBifunctorMSpec$fBifunctorMeasure$fBifunctorDef$fFunctorMSpec$fFunctorCMeasure$fFunctorMeasure $fFunctorDef $fMonoidSpec $fMonoidMSpec $fShowMSpec bareTypePsortP$fInputableRType $fShowPspecPspecVariaRInstClassIMeasCMeasPragmaPBoundHBoundASizeInlineHMeasLazyLVarsDecrQualifEmbedEAliasPAliasAliasIAliasInvtInclDDeclImptAsrtsLAsrtAsrtAssmMeasArrowSym ArrowPredArrowFuncommentP simpleCommentnewlinePspecificationPparseWithErrorparseErrorError remParseError remLineColtoLogicP toLogicOnePdotangles stringLiteralbareArgP bareAtomPholePholeRefP 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 genBareTypePembedPaliasPpaliasPealiasPrtAliasPaliasIdPmeasureP cMeasureP iMeasureP instancePclassPrawBodyPtyBodyP locUpperIdP' upperIdP'condIdP'binderPgrabs measureDefP measurePatPtupPatPconPatPconsPatPnilPatPnullaryConPatPmkTupPatmkNilPat mkConsPat tupDataCondataConFieldsP dataConFieldP predTypeDDPdataConP dataConNameP dataSizeP dataDeclP dataDeclSizeP dataDeclFullPfTyConPgrabUpto betweenMany specWraps liquidBeginP liquidEndP$fInputableMeasure tidyValueVarstidyVV tidySymbolstidyLocalRefas tidyDSymbols tidyFunBinds tidyTyVars bindersTxtyVars subsTyVarsAllfunBindsSimplifysimplifyinlineLState symbolMapmkErrorLogicMLMrunMisBool simplesymbolthrowgetState coreToPred coreToLogic checkBoolAlts coreToIte toPredApp toLogicAppmakeApp eVarWithMapbrelsbops splitArgstosymbol tosymbol'makesubmkImkRmkS ignoreVarsimpleSymbolVar' isErasableisDead isUndefined$fSimplify(,,)$fSimplifyBind$fSimplifyExpr $fShowExpr$fApplicativeLogicM$fFunctorLogicM $fMonadLogicMbase Data.MaybeNothing makeRTypeBasemkReft addSymSort addSymSortRefaddSymSortRef' spliceArgsExStemappmap expToBindT expToBindReftgetBinds addExistsaddExist expToBindRef expToBind expToBindParg expToBindExpr freshSymbolmakeDictionaryNameIsFreeisFree splitRType splitUReftsplitRef splitReft splitPred $fIsFreex predsUnifyaddIdAaddLocA updateLocA freshTy_typeaddKVars varTemplateinstantiatePredsinstantiateStrataconsE cconsFreshE freshPredRef strengthenS varRefTypeGHC.Base otherwiseTemplateUnknownAssumedAssertedCGconsActmakeAutoDecrDataConslenOfmakeSizedDataConsmergeDataConTypes refreshHoles refreshHoles'extract refreshArgs' strataUnifymeasEnvassmgrtyassmGrtygrtyTopsetLocwithRecswithTRecsetBind isGenericsplitWrsplitWbsplitWbsplitW'splitSsplitsSWithVariancersplitsSWithVariancebsplitSrsplitSsplitfWithVariancesplitCsplitsCWithVariancersplitsCWithVariancebsplitC checkStratumbsplitC'unifyVVrsplitCinitCGI coreBindLitsextendEnvWithVVaddCGEnv++=addSEnvrTypeSortedReft'+++=+=-=??=?= normalizeVVaddBind addClassBind pushConsBindaddCaddPostaddW addWarning boundRecVaraddA freshTy_exprfreshTy_reftypeisKut specTypeKVarstrueTyofType'fixTyrefreshArgsTop refreshArgsrefreshArgsSub makeDecrIndexmakeDecrIndexTyrecType checkIndex makeRecTypeunOConsmergecondition safeLogIndex checkHintcheckValidHint consCBLet consCBToptcondconsCBSizedTysconsCBWithExprs makeFinTy makeTermEnvsconsCBconsBindnoHoles killSubst killSubstReftdefAnn addPToEnvextender addBinders unTemplateaddPostTemplatesafeFromAssertedcconsEsplitConstraints substStrata cconsLazyLetcastTy singletonReft checkUnbound dropExistsdropConstraints cconsCase refreshTy refreshVV refreshVVRefcaseEnvaltReftunfoldRinstantiateTysinstantiatePvs checkTyConcheckFuncheckAllcheckErrvarAnn getSrcSpan'argExpr varRefType'topMeetsubsTyVar_meet'forallExprRefTypeforallExprReftforallExprReft_forallExprReftLookupexprLocisType exprRefType exprRefType_ bindRefType_extendγ $fNFDataREnv$fNFDataCGInfo $fNFDataWfC $fNFDataType$fNFDataRTyCon $fNFDataClass $fNFDataSubC $fNFDataFEnv $fNFDataCGEnv$fFreshableStateTInteger$fPPrintTErrorCtxtidyErrContexttidyCtx stripReft stripRTypetidyREnv expandFix tidyTemps niceTemps ppSpecTypeErrppErrorpprintEnestssepVcat blankLineppError'ppVarerrSaved$fFromJSONTError$fToJSONTError $fException[]$fExceptionTError $fShowTErrorChkItvDepsstartendbinder meetSpanslineDiffgetShiftsetShift$fToJSONSourcePos sliceSaved sliceSaved' assumeSpecdiffVarssigVars globalDiffisDiffthinWithcoreDeps txClosure filterBindsspecDefsspecSigscoreDefscoreDeflineSpancatSpansbindFilevarFile exprSpansaltSpans isJunkSpan lineDiff' diffLines diffShifts loadResult adjustOutput adjustTypes adjustResult errorsResult adjustErrors adjustSrcSpan isCheckedSpanisCheckedRealSpan adjustSpan adjustReal checkedItvifMlinelineE$fFromJSONOutput$fToJSONOutput$fFromJSONAnnInfo$fToJSONAnnInfo$fFromJSONHashMap$fToJSONHashMap $fFromJSONDoc $fToJSONDoc$fFromJSONFixResult$fToJSONFixResult$fFromJSONSourcePos $fFunctorDiff $fShowDefprocessCabalFile findCabalFile findInPath ancestorDirs findInDir addPackageDbs getSandboxDBparsePackageDb maybeReadFile sandBoxFiledumpPackageDescription unPackNamegetSourceDirectoriesallowedOptionsallowedOptionPrefixesgetBuildDirectoriessandboxBuildDirisAllowedOption buildCompilercabalConfigurationcanonicalizePaths setModule mkExprAliastxtx'txQuantmexprtxEApptxPApp cmpSymboldropModuleNamesAndUnique$fTransformableBody$fTransformableDef$fTransformableMeasure$fTransformableExpr$fTransformablePred$fTransformableEither$fTransformableReft$fTransformableUReft$fTransformableRType$fTransformableTInline$fTransformableDataConP$fTransformable[]NameStringVarlookupGhcThing' symbolLookupwiredInsymbolLookupEnv tryPropTyCon isTupleDClookupGhcDataCon'$fGhcLookupName$fGhcLookupLocated txPredReftmapPredM expandApp freeSymbols mapTyRVar varFunSymbolisFunVar plugHolesaddRefs maybeTrue killHolesaddSymisCon$fResolvable()$fResolvablePVar$fResolvablePredicate$fResolvableReft$fResolvableUReft$fResolvableSort$fResolvableSymbol$fResolvableLocated$fResolvableExpr$fResolvablePred$fResolvableQualifier$fResolvable[]exprArg mapM_pvartxParamtxPvarpredMaprtypePredBindsofBRType matchTyConfailRTAliasAppexpandRTAliasApp bareTCApptyAppexpandRTypeSynonyms makeConTypes' ofBDataDeclgetPsSig getPsSigPsaddps ofBDataConmakeTyConEmbeds'makeMeasureInline updateInlinesmakeMeasureDefinitionmakeMeasureSelector mkMeasureDConmkMeasureDCon_ measureCtors mkMeasureSort isSimpleType varSpecTypemakeHaskellBoundtoBoundcapitalizeBound expandMeasureexpandMeasureDefexpandMeasureBodyNodeGraph AliasTable makeRTAliases makeRPAliases makeREAliases graphExpandbuildAliasTablefromAliasSymbolbuildAliasGraphbuildAliasNodecheckCyclicAliasesgenExpandOrderbuildTypeEdgesbuildPredEdgesbuildExprEdges varSymbols varsAftergrepClassAsserts makeLocalSpecmakeSpec lookupIds mkVarSpec makeIAliases'makeInvariants'makeSpecDictionarymakeSpecDictionaryOnemkBoundAssoc renderPandoc renderDirect top'n'tailmkAnnMaprefTokentokAnnotvimAnnot_anns$fToJSONStatusAnnot1A1identannrowcol AnnErrorsAnnTypesAscmkBotswriteFilesOrStrings generateHtml renderHtml renderPandoc' pandocCmd pandocPreProc htmlHeader htmlClosecssHTMLmkStatus mkAnnMapErrcinfoErr mkAnnMapTypmkAnnMapBinders closeAnnotscloseAfilterA collapseApickOneAtrimLiquidAnnottokBodyisMeasisDataisIncl spacePrefix tokeniseSpec tokeniseSpec' chopAltDBGvimBindannTypesinsi$fToJSONAnnMap $fToJSONAssoc $fToJSON[] $fToJSONLoc$fToJSONAnnot1GHC.IOFilePath$fMonoidConfig cmdArgsRun' findSmtSolver fixConfig canonicalize fixDiffCheckenvCfg copyright withPragma parsePragma withCabal' fixCabalDirs'writeCheckVars writeResultresDocs reportUrl addErrors$fFixpointFixResult$fMonoidSMTSolver checkRType checkMeasurescheckRefinedClassescheckDuplicateFieldNamescheckInvcheckIAl checkIAlOnecheckRTAliases checkBindcheckDupIntersectcheckDuplicatecheckDuplicateRTAlias checkMismatchtyCompaterrTypeMismatch checkAppTys checkTcArity checkFunRefscheckAbstractRefs checkReft checkMeasure checkMBodycheckMBodyUnify checkMBody'ReplaceM ReplaceState ReplaceEnvRE_re_env_re_fenv_re_emb_re_tyilistLMap postProcess ghcSpecEnv makeGhcSpec' emptySpec makeGhcSpec0 makeGhcSpec1 makeGhcSpec2 makeGhcSpec3 makeGhcSpec4makeGhcSpecCHOP1makeGhcSpecCHOP3makeGhcSpecCHOP2replaceLocalBinds traverseExprs traverseBindswithExtendedEnvreplaceLocalBindsOne refTypeQuals pAppQualsexpressionsOfSortpAppQual refTypeQuals' refTopQualsmkPQualmkQual lookupSortorderedFreeVars targetFInfo targetQualsgetGhcModGuts1 moduleHquals moduleSpec$fResultSourceError getGhcInfo' makeLogicMap classCons derivedVars derivedVsupdateDynFlags compileCFilesmgi_namestring importVars definedVarsgetDerivedDictionaries cleanFilesremoveFileIfExists allDepNamesdeclNameString patErrorName realSpecNamenotRealSpecNamegetSpecs getPatSpec getRealSpectransParseSpecs parseSpec specParser moduleImports moduleFile specIncludesreqFile errMsgErrors$fPPrintTargetVars $fShowGhcInfo$fPPrintGhcInfo$fPPrintGhcSpec